![]() |
|
#1
|
|||
|
|||
multitex fragment shader issue for different sized textures
Hi,
I am trying to blend an algae texture to a sea floor texture. The algae texture file is a 512x512 jpg image. I am retrieving the other texture from our ocean osgb model. This texture is a 1024x1024 baked into the model. I have tried four ways (see below), but unfortunately, none works! All are shaders, except for the first. 1. Using texblend - this gives some kind of blending, but it is non-uniform and not upto our expectations. 2. Using the texBlendFP.frag shader - the first texture do not show up at all. 3. Using the custom blend shader from \examples\shader\tutorial_multiTexture.py - the first texture do not show up at all. 4. Using the code from multiTexture.py (Tutorial: Multi-texturing) - strangely, same result as in option 1 above! I have attached the py file in txt format here. Any suggestions on how to get this to work? Thank you! |
#2
|
|||
|
|||
It will be best if you can post example Vizard code that reproduces the issue and can be run directly.
|
#3
|
|||
|
|||
#
Code:
import viz import vizfx terrain = vizfx.addChild('blendTest.OSGB') viz.go() viz.MainView.setPosition([58.64860153198242, 0.0, -6.446604251861572]) algaeTexture = viz.addTexture('algae_texture3.jpg', type=viz.TEX_2D, wrap=viz.REPEAT) # Create shader effect that blends textures and applies to diffuse color code = """ Effect "Texture Blend" { Float BlendAmount { value 0 } Texture2D Texture1 { unit 0 } Texture2D Texture2 { unit 1 } Shader { BEGIN Material m.diffuse = mix( texture2D( Texture1, uvTexture1).rgb, texture2D( Texture2, uvTexture2).rgb, BlendAmount); END } } """ texBlendEffect = viz.addEffect(code) itemFromTerrain = terrain.getChild('Terrain_Zone03') oldTex = itemFromTerrain.getTexture() itemFromTerrain.texture(oldTex) itemFromTerrain.texture(algaeTexture, '', unit=1) itemFromTerrain.apply(texBlendEffect) itemFromTerrain.setUniformFloat('BlendAmount', 0.0) slider = viz.addSlider(pos=[0.5,0.1,0]) def setBlendAmount2(blendRatioFromSlider): global itemFromTerrain itemFromTerrain.setUniformFloat('BlendAmount', blendRatioFromSlider) vizact.onslider(slider, setBlendAmount2) # I couldn't find a Vizard resource to recreate this issue, so here is a link to download a zip of my shortest test py file with the terrain osgb and the algae jpg that I am trying to blend - https://stanford.box.com/s/5myna254j...5mkbkfmzdjug28. |
#4
|
|||
|
|||
Jeff, just letting you know that I was able to solve the problem, with the help of Jorge, a Worldviz 3D artist. The baked texture in the terrain was a blend of two textures and a masked texture. I think he used the "render to texture" feature in 3DS max to export all of it to a single texture, which I used instead of retrieving the texture1 from the terrain at runtime. Then I blended it using the algae texture in the unit 1 of multitexturing.
Thank you. |
![]() |
Thread Tools | |
Display Modes | Rate This Thread |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Multiple Textures for Diffuse and Specularity Shader Issue | shivanangel | Vizard | 1 | 05-11-2009 10:44 AM |
Specular Shader Issue | shivanangel | Vizard | 2 | 05-06-2009 11:08 AM |