WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   Emissive object blackout? (https://forum.worldviz.com/showthread.php?t=4167)

EnvisMJ 03-15-2012 08:14 AM

Emissive object blackout?
 
We're having a problem with emissive in our cave.

We're using an intersense wand to indicate an item on 'mouse over' to turn on emissive for it.

object.emissive([0.5,0.5,0.5])

Then, when you 'mouse over' another object the first object is supposed to return to it's original state, and the new object is supposed to become emissive.

object.emissive([0,0,0])

It works fine for some objects, but for others, when they're supposed to go back to normal, they go pitch black. More often than not, the ones that are getting messed up have baked textures while the non-baked textures are fine. Are there any image formats that react badly to emissive?

farshizzo 03-15-2012 01:07 PM

1 Attachment(s)
It's possible that the original emissive color of the object is white, so changing it to black is causing the blackout you are seeing.

There is an option in the max exporter to set self-illumination on baked materials. I believe older versions of the exporter would implement this option by setting the emissive color to the same as the diffuse color. So this could be why you see this happening with baked textured objects.

Newer versions of the exporter implement this option by simply disabling lighting on the object. In this case, changing the emissive color will have no effect.

You might need to use a different technique for highlighting objects. Here is one option. You can apply some grayscale texture to the object and use additive blending, so it effectively brightens the entire object. To unhighlight the object, you simply remove the texture. Here is some sample code:
Code:

import viz
import vizact
viz.go()

model = viz.add('plant.osgb',pos=(0,0,5))

highlight = viz.add('highlight.bmp')

def Highlight(mode):
        if mode:
                model.texture(highlight,unit=2)
                tc = viz.TextureCombine()
                tc.combine_rgb = viz.GL_ADD
                model.texCombine(tc,unit=2)
        else:
                model.texture(None,unit=2)

vizact.onkeydown(' ',Highlight,vizact.choice([True,False]))

This technique should work regardless of the lighting mode of the object. Just make sure the texture unit you are using for the highlight texture is not being used by the object.

I've attached a sample highlight image as well.

EnvisMJ 03-16-2012 11:17 AM

Thanks Farshizzo, it's working great :-D


All times are GMT -7. The time now is 05:17 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC