Forum Coordinators: RedPhantom
Poser - OFFICIAL F.A.Q (Last Updated: 2024 Nov 21 6:06 am)
Ok, so I'm not bagginsbill, but thought I'd offer an opinion here.
To my mind, bruising is something better left to a texture map, rather than procedural node-work. Why? Well, because (haveing recently injured myself in a bike accident and got the evidence to back it up) bruising tends to happen in specific places, at the points of contact. For example, I've had a bruise on my left knee for a week and a half now wwith an unharmed area in the centre, based on something (I don't know what, exactly) which protected that section. Bruising can also take the shape of the specific object which left the mark - the assailant's fist, for example. Thse specific shapes and locations for the damage would, I think, prove beyond the capabilities of a node-based solution.
Of course, I now look forward to bagginsbill to come along and tell me I'm wrong... : :)
jonthecelt
Quote - Ok, so I'm not bagginsbill, but thought I'd offer an opinion here.
To my mind, bruising is something better left to a texture map, rather than procedural node-work. Why? Well, because (haveing recently injured myself in a bike accident and got the evidence to back it up) bruising tends to happen in specific places, at the points of contact. For example, I've had a bruise on my left knee for a week and a half now wwith an unharmed area in the centre, based on something (I don't know what, exactly) which protected that section. Bruising can also take the shape of the specific object which left the mark - the assailant's fist, for example. Thse specific shapes and locations for the damage would, I think, prove beyond the capabilities of a node-based solution.
Of course, I now look forward to bagginsbill to come along and tell me I'm wrong... : :)
jonthecelt
This is a section from Bagginsbill's wonderful Jessi Eye Makeup Parmatic file at rdna Forum.
I'm no expert, but it looks like you can map the location in the script. It was setup for the eye, but I'm guessing some of the wizards here could rework it for various other parts.
Cheers
DR
def JessiEyeMakeup(surface, opacity = .3, mclr1 = Color(.5, 0, 1), mclr2 = Color(.7, .5, 1)):
# I'm taking advantage of the perfect symmetry of the texture mapping
# so I can let x be the distance from the center of the image map.
x = Abs(U - .5)
# These two x values define the limits of the eye part of the map
# in the x (U) dimension.
x0 = .026
x1 = .095
# Now I'm scaling that range to be from 0 to 1. So x=0 is
# at the beginning of the lacrimal, and x=1 is at the outermost
# edge of the eyebrow.
x = Scale(x, x0, x1)
# For y (V), the limits of the region of interest are given by
# y0 and y1.
y = V
y0 = .485
y1 = .55
# Scaling y to those limits, y = 0 is at the lacrimal, and
# y = 1 is just under the peak of the eyebrow.
y = Scale(y, y0, y1)
# Now I compute two curves, y0 traces the upper eyelid
# and y1 traces the bottom of the eyebrow.
y0 = Interpolate(x, ['ibias', .6, 0, .37, .43, .45, .38, .2, .18])
y1 = Interpolate(x, ['ibias', .6, .2, .65, .8, .9, 1, .9, .5])
# Scaling between eyelid and eyebrow gives me a y factor that
# varies from 0 to 1. When yf=0, I'm at the eyelid, when yf=1,
# I'm at the eyebrow.
yf = Scale(y, y0, y1)
# This calculation of blendf gives me a varying strength of the
# eye makeup. I'm making it start strong near the eyelashes,
# then fading to 0 as we approach the eyebrow.
blendf = Interpolate(yf, [0,.9, 1, .8, .4, 0])
# Retrieve the base color - I'm assuming it's in the Alternate_Diffuse
# attribute, as used in demoSkin1 below.
baseclr = surface.Alternate_Diffuse
# Calculate the diffuse reflection from the makeup, blending the
# colors passed in to this function using the gradient from eyelid
# to eyebrow which is in yf.
blendclr = Diffuse(HSV(Blend(mclr1, mclr2, yf)).labelled('PM:EyeMakeup:*'))
# Now just combine the base with the makeup, using the
# specified opacity and the blendfactor computed above.
f = blendf * InRange(x, 0, 1)
f = (opacity * f)
surface.Alternate_Diffuse = Blend(baseclr, blendclr, f).labelled('PM:EyeMakeup:Blending')
# Return the now modified surface.
return surface
It can then be controlled with the Parnatic Dials.
"That government is
best which governs the least, because its people discipline
themselves."
Thomas Jefferson
Attached Link: My gallery posting of Jessi with makeup algorithm
Mariner is spot on.If you want bruises everywhere, I think it would be pretty easy to do - very similar to the freckles algorithm. But this is usually not what you want, right?
Most people don't don't think in terms of 150 shader nodes, so it's easy to conclude you can't make precisely positioned shapes with shader nodes. But you can, and that is why I wrote Matmatic. 50 nodes, 100 nodes, no big deal, it's still two or three lines of code.
If you want precisely positioned bruises (or makeup, or scars) these can be done using a mathematically defined region, bounded by two interpolations. This is what I did to put Jessi's eye makeup exactly where I want it.
Here's the technique I used. I put Jessi's texture on the one-sided square. That's right, the OSS. Why? Because the geometry has nothing to do with the algorithm. It only cares about UV coordinates. The OSS let's me clearly see where on the texture map I'm making an effect. Also, the OSS renders really fast.
So develop the coordinates for your region of interest on the OSS, iteratively changing the values and rendering to see where the region ends up.
When you're done, apply the material to your figure instead.
Do you guys think this is long enough for Beta on Matmatic? Most people seem to think its working right, but I haven't seen anybody else post an original Matmatic material. So as far as I know, everybody is just using my demos. Which concerns me because I tend not to use certain nodes, and they could be buggy. Opinions?
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
Quote - Do you guys think this is long enough for Beta on Matmatic? Most people seem to think its working right, but I haven't seen anybody else post an original Matmatic material. So as far as I know, everybody is just using my demos. Which concerns me because I tend not to use certain nodes, and they could be buggy. Opinions?
I would love to be able to write one of my own Bagginsbill. I am just not up on what the P6 Nodes would look like in Text Code strings as in your examples.
I could also use a Parmatic mm1.txt like your Jessi Eye Makeup one, but without the eye makeup for James ???????
Could you show and example of James with bruise on the Cheek? or some other location? I can wrap my head around the co-ordinates, not necessarily the OSS Technique.
Cheers
DR
Here is a Parmatic Jessi Render.
http://excalibur.renderosity.com/mod/gallery/index.php?image_id=1274079&member
"That government is
best which governs the least, because its people discipline
themselves."
Thomas Jefferson
Quote - Do you guys think this is long enough for Beta on Matmatic? Most people seem to think its working right, but I haven't seen anybody else post an original Matmatic material. So as far as I know, everybody is just using my demos. Which concerns me because I tend not to use certain nodes, and they could be buggy. Opinions?
I tried matmatic once, but never got it to work but i think it was me.... I'll need to go back and try again when i have more time.
My Homepage - Free stuff and Galleries
In the next six postings, I'll show you the Matmatic script and what it produced.
In each iteration, I changed some things, but I'm presenting the whole script, so you can work through the steps yourself if you like.
I defined no functions, loops, or ifs, so indentation is not a problem. Cut and paste should work.
I started with the premise that a round bruise would not work, but in the end it looks fine to me. If you can't do an interpolation and want me to explicitly reshape the bruise for you, I can. Make a copy of the final image here, and draw an outline of roughly where you want the bruise, then I'll do the interpolation function.
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
clr = ImageMap(":Runtime:Textures:Poser 6 Textures:James_Face_Color.jpg")
s = Surface(clr, 1, 1, .2, .5)
bruiseclr = Color(.5, .2, .7)
cx = .4
cy = .45
x = U - cx
y = V - cy
r = sqrt(x * x + y * y)
br = .1
bruiseblender = Scale(r, br, br / 2)
#Finally I simpley blend the original Diffuse_Color (from above) with the bruise color
#using the bruiseblender I just calculated.
s.Diffuse_Color = Blend(s.Diffuse_Color, bruiseclr, bruiseblender)
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
clr = ImageMap(":Runtime:Textures:Poser 6 Textures:James_Face_Color.jpg")
s = Surface(clr, 1, 1, .2, .5)
bruiseclr = Color(.5, .3, .6)
cx = .4
cy = .5
x = U - cx
y = V - cy
r = sqrt(x * x + y * y)
br = .06
bruiseblender = Scale(r, br, br / 2)
#Finally I simpley blend the original Diffuse_Color (from above) with the bruise color
#using the bruiseblender I just calculated.
s.Diffuse_Color = Blend(s.Diffuse_Color, bruiseclr, bruiseblender)
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
clr = ImageMap(":Runtime:Textures:Poser 6 Textures:James_Face_Color.jpg")
s = Surface(clr, 1, 1, .2, .5)
bruiseclr = Color(.5, .3, .6)
cx = .4
cy = .55
x = U - cx
y = V - cy
r = sqrt(x * x + y * y)
br = .06
maxblend = .7
bruiseblender = maxblend * Scale(r, br, br / 2)
#Finally I simpley blend the original Diffuse_Color (from above) with the bruise color
#using the bruiseblender I just calculated.
s.Diffuse_Color = Blend(s.Diffuse_Color, bruiseclr, bruiseblender)
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
clr = ImageMap(":Runtime:Textures:Poser 6 Textures:James_Face_Color.jpg")
s = Surface(clr, 1, 1, .2, .5)
bruiseclr = Color(.5, .3, .6)
cx = .4
cy = .525
x = U - cx
y = V - cy
r = sqrt(x * x + y * y)
br = .07
maxblend = .4
bruiseblender = maxblend * Scale(r, br, br / 2)
#Finally I simply blend the original Diffuse_Color (from above) with the bruise color
#using the bruiseblender I just calculated.
s.Diffuse_Color = Blend(s.Diffuse_Color, bruiseclr, bruiseblender)
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
clr = ImageMap(":Runtime:Textures:Poser 6 Textures:James_Face_Color.jpg")
s = Surface(clr, 1, 1, .2, .5)
cx = .4
cy = .525
x = U - cx
y = V - cy
r = sqrt(x * x + y * y)
br = .07
bruiseclr = ColorRamp(
IColor(90, 44, 112),
IColor(90, 56, 113),
IColor(90,70, 153),
IColor(90, 41, 154),
Scale(r, 0, br)
)
maxblend = .3
bruiseblender = maxblend * Scale(r, br, br / 2)
#Finally I simply blend the original Diffuse_Color (from above) with the bruise color
#using the bruiseblender I just calculated.
s.Diffuse_Color = Blend(s.Diffuse_Color, bruiseclr, bruiseblender)
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
In the end it's only 12 nodes.
One pretty easy way to adjust the shape of the bruise is to make multiple bruise blenders. Use other cy, cy, br values. Then you'd combine two bruises to make a new poly-bruise by combining their blender functions. One for the color, one for the final blend.
I'd combine them using the Min function. In otherwords, your "r' value would be the minimum "r" with respect to all your cx, cy, br coordinates.
If that's not clear, I can post an example.
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
For example, here I made the bruise 2 times wider than before. I did it by making the following change in the script
x = (U - cx) / 2
To make it 3 times wider do:
x = (U - cx) / 3
To make it 12 times taller do:
y = (V - cy) / 12
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
Define "easier". I did the whole 6 step tutorial, including writing all the comments, saving multiple versions of the script, and generating and saving a bunch of test renders, in exactly 30 minutes.
If I wasn't making a step-by-step tutorial, it would have taken no more than 5 minutes.
Now how quick can you paint a bruise then test it in a render? Then change your mind about the colors, size, position, several times. I can't do it in 5 minutes.
Another thing is, if you want a bruise on one of the seams, like the back, you're in for a treat trying to paint that. You actually have to paint two separate bruises and get them to line up.
Painting a bruise separately, then blending with nodes, that seems more reasonable. But I still couldn't do it faster than I did.
The thing you have to remember, is that the algorithms are reusable. You really can't judge the effort of creating the algorithm versus painting one bruise. Instead, imagine you are doing a movie. The director tells you to produce 30 different bruises on 5 characters, The story spans enough time that the bruises have to evolve, changing colors and fading as five movie "days" go by. That's 150 different bruise images. But if you have an algorithmic way to make them, then you just call it with new parameters.
I agree that I didn't make it look realistic, but I was only trying to demonstrate the possibilities, as requested. Given enough time, a very realistic reusable bruise generator is totally possible.
Finding the algorithms can be tricky, but once they are defined, using them is really easier than painting ANYTHING. For example, I recently was asked how to make reptile and goldfish scales. I spent two hours on the algorithm. Now people can have scales of any size, any color, any shape, any orientation, in seconds.
Check out these images by me and others using the scales. With a painted image they'd all be the same. With the procedural approach, no two are alike.
http://www.renderosity.com/mod/gallery/index.php?image_id=1274107
http://www.renderosity.com/mod/gallery/index.php?image_id=1266453
http://www.renderosity.com/mod/gallery/index.php?image_id=1254884
http://excalibur.renderosity.com/mod/gallery/index.php?image_id=1264358
http://www.poserclub.jp/ph_view2.htm?ph_no=2010&phid=1154574595
http://www.runtimedna.com/mod/forum/messages.php?forum_id=43&ShowMessage=233907There's lots more, all using the same one-page script, but you get the point.
My point is, I think algorithmic shaders give so much more variety and are much more useful than image based shaders. Sure, there are times when the image based shader is the only way to go, but not always. So I always encourage their use.
I think maybe the "hobbyist" market, which seems to be mostly what Poser caters to, doesn't care that much about saving a lot of time. Maybe I should be peddling my "medicine" to the pros? :) LOL
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
Plus with procedurals you don't clutter up your hard drive with a bunch of jpeg files.
Now big drives are getting cheaper, but you still have to wade through that mess
to find the one you are looking for, and if it's been a few weeks since you used
it last it's even harder to remember where you put it.
As always, Thank you very much for all of your expertise and sacricing your time to explain this all to us. As a mariner, I am fairly certain that i know how to interpolate and comprehend coordinates.
I agree with you 100%. I like the idea of scripting to do the bulk of it for me. As you mention, it really is quick and easy to change values for a new look. I tend to enjoy what the program can do on it's own, without doing Post Work. I rarely ever do any Post Work. I would rather go back into poser and see what i can do to improve the final render. For me Matmatic and parmatic make that sooo much easier now.
Cheers
DR
Quote - Define "easier". I did the whole 6 step tutorial, including writing all the comments, saving multiple versions of the script, and generating and saving a bunch of test renders, in exactly 30 minutes.
If I wasn't making a step-by-step tutorial, it would have taken no more than 5 minutes.
Now how quick can you paint a bruise then test it in a render? Then change your mind about the colors, size, position, several times. I can't do it in 5 minutes.
Another thing is, if you want a bruise on one of the seams, like the back, you're in for a treat trying to paint that. You actually have to paint two separate bruises and get them to line up.
Painting a bruise separately, then blending with nodes, that seems more reasonable. But I still couldn't do it faster than I did.
The thing you have to remember, is that the algorithms are reusable. You really can't judge the effort of creating the algorithm versus painting one bruise. Instead, imagine you are doing a movie. The director tells you to produce 30 different bruises on 5 characters, The story spans enough time that the bruises have to evolve, changing colors and fading as five movie "days" go by. That's 150 different bruise images. But if you have an algorithmic way to make them, then you just call it with new parameters.
I agree that I didn't make it look realistic, but I was only trying to demonstrate the possibilities, as requested. Given enough time, a very realistic reusable bruise generator is totally possible.
Finding the algorithms can be tricky, but once they are defined, using them is really easier than painting ANYTHING. For example, I recently was asked how to make reptile and goldfish scales. I spent two hours on the algorithm. Now people can have scales of any size, any color, any shape, any orientation, in seconds.
Check out these images by me and others using the scales. With a painted image they'd all be the same. With the procedural approach, no two are alike.
http://www.renderosity.com/mod/gallery/index.php?image_id=1274107
http://www.renderosity.com/mod/gallery/index.php?image_id=1266453
http://www.renderosity.com/mod/gallery/index.php?image_id=1254884
http://excalibur.renderosity.com/mod/gallery/index.php?image_id=1264358
http://www.poserclub.jp/ph_view2.htm?ph_no=2010&phid=1154574595
http://www.runtimedna.com/mod/forum/messages.php?forum_id=43&ShowMessage=233907There's lots more, all using the same one-page script, but you get the point.
My point is, I think algorithmic shaders give so much more variety and are much more useful than image based shaders. Sure, there are times when the image based shader is the only way to go, but not always. So I always encourage their use.
I think maybe the "hobbyist" market, which seems to be mostly what Poser caters to, doesn't care that much about saving a lot of time. Maybe I should be peddling my "medicine" to the pros? :) LOL
"That government is
best which governs the least, because its people discipline
themselves."
Thomas Jefferson
Could post the Full JamesBruise.mm1.txt Parmatic Script please?
I know I will muck it up somewhere with the Cut and Paste.
This has been very helpful in understanding what you have done here.
Thanks again.
DR
Quote - OK I just went through the process of making a cheek bruise for James. Here's the final render. Now I'll show you how I got there.
In the next six postings, I'll show you the Matmatic script and what it produced.
In each iteration, I changed some things, but I'm presenting the whole script, so you can work through the steps yourself if you like.
I defined no functions, loops, or ifs, so indentation is not a problem. Cut and paste should work.
I started with the premise that a round bruise would not work, but in the end it looks fine to me. If you can't do an interpolation and want me to explicitly reshape the bruise for you, I can. Make a copy of the final image here, and draw an outline of roughly where you want the bruise, then I'll do the interpolation function.
"That government is
best which governs the least, because its people discipline
themselves."
Thomas Jefferson
Unfortunately - renderosity will not let me post a text file.
Why the f**k this is not allowed - I have no idea.
The programmers here are really strange.
I say this with authority, as I am a professional programmer..
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
Just cut and paste - there are no tabs in this one.
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
Change the extension to DOC and then attach.
(Maybe add a comment to this thread -> http://www.renderosity.com/mod/forumpro/showthread.php?thread_id=2661596)
Couldn't have been Easier. Thanks again Bagginsbill.
Could you maybe post a Parmatic Version at RDNA?
Please, If you would , I would like to see a Parmatic one for James such as the JessiEyeMakeUp.mm1.txt that has SSS and uses this Bruise instead of her eye makeup.
I haven't figured out How to hack that one for James.
Also, it looks like I now have to get the body texture to match the Bruise Head texture.
Cheers
DR
"That government is
best which governs the least, because its people discipline
themselves."
Thomas Jefferson
I really like this one Bagginsbill.
I used Blender and added a Granite Node. Left the color dark just to display better.
Cheers
DR
"That government is
best which governs the least, because its people discipline
themselves."
Thomas Jefferson
Dude you're cracking me up. ;-) Did you have coffee yet this morning? LOL
It says:
Processing script ....JamesBruise.mm1.txt->material
-> node count 12
So that was fine - worked perfectly. There is nothing wrong with your bruise script.
Then it says:
Processing script ....SeaWaterMAT.mm1.txt->material
MATMATIC Script Error: expected an indented block (line 21)
So, I'm just guessing here, but I'd have to say that your sea water file is bad and an indented block is expected on line 21, and it is not indented because it got lost in a cut and paste.
Next time you want to post the Matmatic output for me, just cut and paste the text - no screen shot image needed.
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
Yeah that's a great looking bruise DR.
You've got the idea - once the basic algorithm is in place, then you vamp on the colors to your hearts content.
Post your script code for the bruise pattern - get used to sharing like that. Also, I can spot things for you and point out other ways to say/do it. You don't need to post the whole script. just show me the part you are experimenting with.
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
maxblend = .5
bruiseblender = maxblend * Scale(r, br, br / 2)
bruiseblender = bruiseblender * Marble3(.5, 1, scale=.5)
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
Quote - Dude you're cracking me up. ;-) Did you have coffee yet this morning? LOL
Next time you want to post the Matmatic output for me, just cut and paste the text - no screen shot image needed.
ROFL - Noooo, I am certain that i haven't had enough Caffeine today.
Thanks, I keep forgetting to use the Keystrokes for cut & paste on that. The mouse doesn't work.
Cheers
DR
"That government is
best which governs the least, because its people discipline
themselves."
Thomas Jefferson
Post your script code for the bruise pattern - get used to sharing like that. Also, I can spot things for you and point out other ways to say/do it. You don't need to post the whole script. just show me the part you are experimenting with.
[ /quote]
I would love to share the script BB, what I did was add the Blender in the Mat Room.
Could you do a short section on "adding the second Blender and then how to combine in the final output please???? Thanks
Ps: My Forte is sailing large merchant ships around the world. Poser is my addiction when I am home on vacation.
DR
"That government is
best which governs the least, because its people discipline
themselves."
Thomas Jefferson
maxblend = .5
bruiseblender = maxblend * Scale(r, br, br / 2)
bruiseblender = bruiseblender * Marble3(.5, 1, scale=.5)
Post your script code for the bruise pattern - get used to sharing like that. Also, I can spot things for you and point out other ways to say/do it. You don't need to post the whole script. just show me the part you are experimenting with.
===========================================
I would love to BB, still not cetain How to write that part?
Would it be something like your latest example:
maxblend = .5
bruiseblender = maxblend * Scale(r, br, br / 2)
bruiseblender = bruiseblender * Granite3(.5, 1, scale=.5)
This looks fantasic, I could see this done on the nose as a Heavy Drinker with years of consumption.
Maybe on the hand, leg, ankles etc as vericose veins.
I will have to go back and find the Seawater script and save as, Tks
Cheers
DR
"That government is
best which governs the least, because its people discipline
themselves."
Thomas Jefferson
In reading through the Matmatic Extras, I see that you explain How you did the Marble and Wood.
Would it be possinlt to put together the Statements to use the 3D Nodes please?
I think if I new How to insert the Various Nodes Statements that i could certainly experiment away after that.
I tried substituting Granit, but got and err because I hadn't defined Granit
Cheers
DR
"That government is
best which governs the least, because its people discipline
themselves."
Thomas Jefferson
Quote - Now how quick can you paint a bruise then test it in a render? Then change your mind about the colors, size, position, several times. I can't do it in 5 minutes.
Another thing is, if you want a bruise on one of the seams, like the back, you're in for a treat trying to paint that. You actually have to paint two separate bruises and get them to line up.
I think you are kinda underestimating just how powerful texture painting tools are these days.
Quote - I think maybe the "hobbyist" market, which seems to be mostly what Poser caters to, doesn't care that much about saving a lot of time. Maybe I should be peddling my "medicine" to the pros? :) LOL
Well im not exactly sure how using procedurals makes anyone more of a 'pro'. Just because Poser didnt get a material system till recently doesnt make the technology cutting edge or anything. Quite the opposite in fact... most other apps have had them for so long that their use has become a cliche. Heck back when you didnt have texture mapping the only thing people used were procedurals. What you are doing here is exactly what they did in the 80s and early 90s (which might be fine for a retro look of course.) Try looking at some of the old CG shorts by Pixar and others and you will see what i mean.
Tekn0m0nk:
I'm not underestimating texture painting tools - I know there are some that make painting across seams trivial and so on, like ZBrush, Modo, and others. Most Poser users don't have those - they're expensive tools. Even if you have them, I've actually tried painting with ZBrush and I can't do it. The results are always horrible. I can't paint.
Quote: Well im not exactly sure how using procedurals makes anyone more of a 'pro'.
I'm glad you're not sure of that becuase 1) it's wrong and 2) I never said that. I didn't offer a definition of professional, I simply used the word "pros". And by that, I meant people who do computer generated imagery for a living, not a hobby. For those people, time is money, and saving time means making more money. That's all I meant, it was an offhand comment that hobbyists aren't generally going to need time saving techniques because the purpose of a hobby is to spend your time doing something you like doing. When a CG pro paints a texture, it isn't because he/she enjoys it, it's because it is the best way to get results in the time available. If a procedural method is faster and just as good, then they use it.
Anyway if you have those tools, which I don't, and can paint well, which I can't, and you like making things one at a time, go ahead and paint.
My hobby is not painting. It's not even rendering. I'm not an artist. I enjoy solving puzzles, especially puzzle solutions that others find useful. So when someone asks (for me, by name) how to do a tricky thing procedurally, I work on that. I may not succeed, or I may produce inferior results, but I will at least answer the question.
Remember the original question?
Is there a way to use the materials room to make a figure appear bruised or beaten?
The correct answer is "yes". The incorrect (or at least not helpful) answer is "no - I'd paint it so you should too"
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
Tekn0monk:
I just looked at your gallery. Those are really good renders. So you're working on a procedural skin shader, are you.
HEHEH
Shame on you, picking on procedurals.
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
Quote - Remember the original question?
Is there a way to use the materials room to make a figure appear bruised or beaten?
The correct answer is "yes". The incorrect (or at least not helpful) answer is "no - I'd paint it so you should too"
Many Thanks Bagginsbill.
That's what I wanted to learn How to Do. I'm not at all into Post Work . My aim to to learn more about using Poser, not painting.
Cheers
DR
"That government is
best which governs the least, because its people discipline
themselves."
Thomas Jefferson
To be fair, DR, tekn0m0nk wasn't talking about post work painting, but rather making the bruise as a texture file, which you apply in the material room as a shader tree, instead of the algorithmic shader tree I supplied. This is still pre-render and would not have to be done over and over again like post work.
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
IT IS NOT A DOC FILE - I HAD TO RENAME IT TO MAKE RENDO LOAD IT.
PLEASE REMOVE .doc FROM THE NAME>
It is a trivial conversion of the Jessi demo to use the James texture files. I also added the bruise code above as you requested. The skin features and bruise features all have Parmatic dials, so you can adjust him to your liking.
Will post an image next.
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
Quote - To be fair, DR, tekn0m0nk wasn't talking about post work painting, but rather making the bruise as a texture file, which you apply in the material room as a shader tree, instead of the algorithmic shader tree I supplied. This is still pre-render and would not have to be done over and over again like post work.
Thanks for the Clarification Bagginsbill.
What would happen with sizing that way? and How would you align it?
Could you please show me the text to define the Granite Node ?
Many Thanks
DR
"That government is
best which governs the least, because its people discipline
themselves."
Thomas Jefferson
Bruise U: .57
Bruise V: .6
Bruise R: .07
Bruise Blend: .5
Skin Hue: 1
Skin Value: .7
SSS: 1
Specular_Value: .1
Freckles:Blending: .8
SKin:Saturation: 1.1
Blinn:Reflectivity: .5
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
Aligning a bruise texture file is pretty easy - you just plug in UV offsets into the ImageMap node.
To make any node in Parmatic, look up the node in the Node Reference. I listed them all. The parameters are documented. You usually want to set the parameters when you create the node, in the argument list. This is all covered in the manual.
So to make the nodes you showed me in your screen shot:
myNoiseNode = Noise()
#The granite has the noise plugged into the first parameter and all the rest are default:
myGraniteNode = Granite(myNoiseNode)
#The granite was plugged into the blender second color (for the bruise):
s.Diffuse_Color = Blend(s.Diffuse_Color, bruiseclr * myGraniteNode, bruiseblend)
That's all I need to do to match what you modified in my shader.
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
Quote - Aligning a bruise texture file is pretty easy - you just plug in UV offsets into the ImageMap node.
To make any node in Parmatic, look up the node in the Node Reference. I listed them all. The parameters are documented. You usually want to set the parameters when you create the node, in the argument list. This is all covered in the manual.
So to make the nodes you showed me in your screen shot:
I'll do this step by step instead of one big statement
First the noise - since all the parms are default value, I need no arguments
myNoiseNode = Noise()
#The granite has the noise plugged into the first parameter and all the rest are default:
myGraniteNode = Granite(myNoiseNode)#The granite was plugged into the blender second color (for the bruise):
s.Diffuse_Color = Blend(s.Diffuse_Color, bruiseclr * myGraniteNode, bruiseblend)
That's all I need to do to match what you modified in my shader.
This was very Helpful BagginsBill.
I think this is what has been holding those of us who what to do a script back. We are to thickdense to understand How to add the P6 Materila Room Nodes as lines of text in the script. Your explainations make it much easier.
Definitely needs work here, size is off and coloring is wrong. But at least it shows what I am attempting to do with the Vericose Vein idea. Vericose Veins and SSS would certainly go along way to making and Older Persons' Skin.
I tried it on G2 James. The positioning was off, so I would say the Maps are different between P6James and G2 James.
Cheers
DR
"That government is
best which governs the least, because its people discipline
themselves."
Thomas Jefferson
This was very Helpful BagginsBill.
I think this is what has been holding those of us who what to do a script back. We are to thickdense to understand How to add the P6 Materila Room Nodes as lines of text in the script. Your explainations make it much easier.
Definitely needs work here, size is off and coloring is wrong. But at least it shows what I am attempting to do with the Vericose Vein idea. Vericose Veins and SSS would certainly go along way to making and Older Persons' Skin.
I tried it on G2 James. The positioning was off, so I would say the Maps are different between P6James and G2 James.
Cheers
DR
"That government is
best which governs the least, because its people discipline
themselves."
Thomas Jefferson
Quote - Parmatic dial settings:
Bruise U: .57
Bruise V: .6
Bruise R: .07
Bruise Blend: .5
Skin Hue: 1
Skin Value: .7
SSS: 1
Specular_Value: .1
Freckles:Blending: .8
SKin:Saturation: 1.1
Blinn:Reflectivity: .5
Thanks
The script I have been working with was a Matmatic one. Can you show what i need to do to turn it into a Parmatic script with these values please?
Or
Can I cut and paste the JessiEyeMakeup Parmatic Script?
Thanks
DR
"That government is
best which governs the least, because its people discipline
themselves."
Thomas Jefferson
Quote - So to make the nodes you showed me in your screen shot:
I'll do this step by step instead of one big statement
First the noise - since all the parms are default value, I need no arguments
myNoiseNode = Noise()
#The granite has the noise plugged into the first parameter and all the rest are default:
myGraniteNode = Granite(myNoiseNode)#The granite was plugged into the blender second color (for the bruise):
s.Diffuse_Color = Blend(s.Diffuse_Color, bruiseclr * myGraniteNode, bruiseblend)
That's all I need to do to match what you modified in my shader.
So, this shoiuld be the script then? I ran it and had no errors. 13 Nodes.
=========================
##Bagginsbill's Bruise Script
clr = ImageMap(":Runtime:Textures:Poser 6 Textures:James_Face_Color.jpg")
s = Surface(clr, 1, 1, .2, .5)
bruiseclr = Color(.5, .2, .7)
cx = .4
cy = .45
x = U - cx
y = V - cy
r = sqrt(x * x + y * y)
br = .1
bruiseblender = Scale(r, br, br / 2)
myNoiseNode = Noise()
#The granite has the noise plugged into the first parameter and all the rest are default:
myGraniteNode = Granite(myNoiseNode)
#Finally I simpley blend the original Diffuse_Color (from above) with the bruise color
#using the bruiseblender I just calculated.
#The granite was plugged into the blender second color (for the bruise):
s.Diffuse_Color = Blend(s.Diffuse_Color, bruiseclr * myGraniteNode, bruiseblender)
====================================
Thanks Very much
DR
"That government is
best which governs the least, because its people discipline
themselves."
Thomas Jefferson
The script I have been working with was a Matmatic one. Can you show what i need to do to turn it into a Parmatic script with these values please?
Let's be clear: A Matmatic script is not a shader. It produces a shader. Parmatic is a script, but it doesn't read scripts. It looks at shaders and creates parameters for them, then keeps the shader in sync with the parameter settings. So your question is invalid - you do not make a Parmatic script - there is no such thing.
However, you do make your shader into a Parmatic one, by doing something very simple in Matmatic.
Rather than give you a full explanation of all the Parmatic trickery, let's just use a very simple scheme that works pretty well.
In your script, wherever you have a number, and you want to make that number be a Parmatic parameter, just wrap it in an adder and label it a special way.
For example, up above we have this statement:
cx = .4
This defines what we're using for the center x value of the bruise algorithm. We can Parmaticize it like this:
cx = Add(.4).labelled("PM:Bruise CX")
What I did there, was I made an Add node, with only one argument, .4. The second argument is 0, and since .4+0 is .4, it doesn't matter. Then I labelled it - that is the magic for Parmatic - the label. If the label begins with "P" "M" and a colon, then that node is important and gets a parameter. Simple isn't it?
Now suppose you wanted to make a granite node with a Parmatic adjustable scale, initially at .25.
First, this is how you'd create the node in Matmatic.
myGranite = Granite(Scale=.25)
Now we Parmaticize the .25
myGranite = Granite(Scale=Add(.25).labelled("PM:Granite Scale"))
Get it?
I don't have to do it in one line: I can do it in two steps for easier reading:
graniteScale = Add(.25).labelled("PM:Granite Scale")
myGranite = Granite(Scale = graniteScale)
Or yet another way:
graniteScale = Add(.25)
graniteScale.label = "PM:Granite Scale"
myGranite = Granite(Scale = graniteScale)
Lots of options - pick the style you like.
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
So, this shoiuld be the script then? I ran it and had no errors. 13 Nodes.
Yeah that looks right. Just load it and look at it.
In general, you will get really good at Matmatic shader writing if what you do is build up small and look at the resulting shader tree.
Try simple things like:
Surface(Granite())
Surface(GREEN * Granite())
Surface(Blend(GREEN * Granite(), .5 * Spots(RED, BLUE), .5))
Do fifty of these, getting progressively more complicated expressions. Type in every example I did in the manual and look at the resulting shader tree.
I spent 15 full days writing the manuals and all those examples. You should be able to go through them one by one, making a file of your own, reproduce my results, than modify each a little bit. It's like anything else, you need to build new connections in your brain, and that comes from practice, especially repetition.
After a while bells will ring, lights will come on, and you will wonder how you didn't see the connections right away as scripts.
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)
Quote - The script I have been working with was a Matmatic one. Can you show what i need to do to turn it into a Parmatic script with these values please?
Let's be clear: A Matmatic script is not a shader. It produces a shader. Parmatic is a script, but it doesn't read scripts. It looks at shaders and creates parameters for them, then keeps the shader in sync with the parameter settings. So your question is invalid - you do not make a Parmatic script - there is no such thing.
However, you do make your shader into a Parmatic one, by doing something very simple in Matmatic.
Thanks again. I never really understood what you were trying to teach us the first go around with Parmatic.
With these examples, I certainly understand it much better.
Cheers
DR
"That government is
best which governs the least, because its people discipline
themselves."
Thomas Jefferson
Quote - Do fifty of these, getting progressively more complicated expressions. Type in every example I did in the manual and look at the resulting shader tree.
I spent 15 full days writing the manuals and all those examples. You should be able to go through them one by one, making a file of your own, reproduce my results, than modify each a little bit. It's like anything else, you need to build new connections in your brain, and that comes from practice, especially repetition.
After a while bells will ring, lights will come on, and you will wonder how you didn't see the connections right away as scripts.
Understood. In the beginning I never really understood the now defunct Microsoft DirectX Direct Animation scripts either. After doing a 100 or more it sunk in so that many things became routine.
Thanks for all the help Bagginsbill.
DR
"That government is
best which governs the least, because its people discipline
themselves."
Thomas Jefferson
I have something off a bit with the Bruising, but the rest is great.
DR
Quote - DR Here ya go. Attached is JamesDemo.mm1.txt.
IT IS NOT A DOC FILE - I HAD TO RENAME IT TO MAKE RENDO LOAD IT.
PLEASE REMOVE .doc FROM THE NAME>
It is a trivial conversion of the Jessi demo to use the James texture files. I also added the bruise code above as you requested. The skin features and bruise features all have Parmatic dials, so you can adjust him to your liking.
Will post an image next.
"That government is
best which governs the least, because its people discipline
themselves."
Thomas Jefferson
This site uses cookies to deliver the best experience. Our own cookies make user accounts and other features possible. Third-party cookies are used to display relevant ads and to analyze how Renderosity is used. By using our site, you acknowledge that you have read and understood our Terms of Service, including our Cookie Policy and our Privacy Policy.
Is there a way to use the materials room to make a figure appear bruised or beaten?