PDA

View Full Version : Black spots on avatars


v-jbinney
10-07-2007, 09:49 PM
Hey guys,

I'm using several of the Rocketbox Complete Character avatars (medium polgon version). When rendering the avatars in Vizard 3.0, black areas spontaneously appear on the edges of their bodies (see screenshots.) It seems that these might be rendered shadows, but they look unnatural and jumpy. I get the same dark spots on both the HMD and the computer monitor, regardless of whether or not the avatar is animated.

What is the reason for the dark edges on the avatars? Also, if these are in fact shadows, is there a way to disable this feature?

Veleno
10-08-2007, 12:59 PM
Hi v-jbinney.
What you are seeing is a bug with the way cal3d handles specular highlights. You can fix this problem by changing the specular color to black (it's white by default), as in the attachment, or by increasing the number next to specular level.

Basically, if you want something to look shiny, leave the color as white, and crank up the number next to the specular level, and if you want something be matte, leave the number at zero and set the specular color to black.

v-jbinney
10-08-2007, 11:59 PM
Thanks for your suggestions. However, when I tried implementing them, I had some peculiar results.

When I changed the specular color to black and re-exported all the Cal3D files, Vizard rendered the avatar as a completely black object:
201

Then, I tried leaving the specular color white and just adjusting the specular level, upping it to 25. After re-exporting the Cal3D files, I ended up with a slightly shinier avatar, but the black spots still appeared in Vizard:
202

I also noticed a file named *_spec.tga which seemed to be a specular bitmap. Unfortunately, when I tried mapping this to the avatar's specular highlights, I still ended up with spots appearing around the edges:
204

I notice that the black spots are much more pronounced when the avatar is near the edge of my viewpoint. It seems, also, that the dark spots don't look any different regardless of specular settings (they look exactly the same even when I map the body texture to the specular highlights). Could this issue actually be due to Vizard's rendering? And if so, is there a way I can disable the shadow feature?

farshizzo
10-09-2007, 10:14 AM
Vizard does not have a "shadow" feature. The problem is that the avatar material is not using ideal values. Try the following in your script:avatar.color(1,1,1)
avatar.ambient(0.6,0.6,0.6)
avatar.emissive(0,0,0)
avatar.specular(0,0,0)These are the values the default avatars use.

v-jbinney
10-09-2007, 11:08 AM
Thank you for the information - that's exactly what I was looking for. I played around with the values for a little bit, and I actually found that the most realistic lighting/reflecting combination for the complete-character avatars I'm using is:
avatar.color(1,1,1)
avatar.ambient(1,1,1)
avatar.emissive(0,0,0)
avatar.specular(0,0,0)
Thanks again for your help.

Gladsomebeast
10-23-2007, 04:35 PM
I found the avatars to be a bit dark when disabling the head light and using an overhead light. I fixed this by increasing their emissive color

import viz
viz.go()

viz.move([0, 0, -1])

viz.MainView.getHeadLight().disable()
l = viz.addLight()
l.position(0,1,-.2,0)

avatar = viz.add('vcc_female.cfg', euler=[180,0,0])
avatar.state(1)

avatar.color([1]*3)
avatar.ambient([.6]*3)
avatar.emissive([.2]*3)
avatar.specular(0,0,0)

Darkmax
09-07-2010, 11:13 AM
im having this issues, and i solved with this

avatar.color(1,1,1)
avatar.ambient(0.6,0.6,0.6)
avatar.emissive(0,0,0)
avatar.specular(0,0,0)

but is there a way to set this on 3ds max to just import the model in vizard without making a change to the avatar?, just like the vcc_male that just you have to import it and thats it

Veleno
09-07-2010, 06:51 PM
im having this issues, and i solved with this

avatar.color(1,1,1)
avatar.ambient(0.6,0.6,0.6)
avatar.emissive(0,0,0)
avatar.specular(0,0,0)

but is there a way to set this on 3ds max to just import the model in vizard without making a change to the avatar?, just like the vcc_male that just you have to import it and thats it

The way to do it through max would be to write a maxscript that goes through all the max files in a directory and changes the values in all the materials to what you need. The attached zip has a maxscript which should give you a good starting point.