I’m playing a little bit with dependent texture reads using different extensions. My goal is it to do a full scene color lookup using a 3D texture and dependent texture reads. At first I render my scene as usually and then I copy it into a texture rectangle. After that I do the dependent read with into the 3D lookup texture.
So far I have implemented it using NV_texture_shader3 and ARB_fragment_program. I would like to do it also using ATI_fragment_shader but I have no chance to test it. Perhaps someone can tell me the outline of the corresponding gl calls.?
Here is the fp:
TEX rgbcol,fragment.texcoord,texture, RECT;
TEX result.color, rgbcol,texture,3D;
Thanks in advance
From the top of my head:
glSampleMapATI(GL_REG_0_ATI, GL_TEXTURE0_ARB, GL_SWIZZLE_STR_ATI);
glColorFragmentOp1ATI(GL_MOV_ATI, GL_REG_1_ATI, GL_NONE, GL_NONE, GL_REG_0_ATI, GL_NONE, GL_NONE);
glSampleMapATI(GL_REG_1_ATI, GL_REG_1_ATI, GL_SWIZZLE_STR_ATI);
glColorFragmentOp1ATI(GL_MOV_ATI, GL_REG_0_ATI, GL_NONE, GL_NONE, GL_REG_1_ATI, GL_NONE, GL_NONE);
The inner move is needed because you can only do dependant texture reads in the second phase of the shader, and you need at least one instruction between the phases.
After the texture read, the color sampled from the 3D texture is in reg1, it has to be copied to the output register (also reg0).
If it doesn’t work, it maybe needs STQ as the dependant read swizzle, just a guess…
wow, could you please provide me with your header files for arb_frag_prog?
here’s my email address: email@example.com
@Ysaneya: thanks , tomorrow I’ll get access to a Radeon 9700, so I’ll test it.
@tellaman: do you mean the headers with tokens and functions ? You can find them on http://www.oss.sgi.com/projects/ogl-sample/
If you mean my loading and setup code, surely, no problem.
yes please scott i would need both gl headers (since i still cant seem to find the rite one) and if possible your setup code
thanks in advance
hi scott and thanks for your reply
unfortunately i’m still having problems
i hope you can help me out
i’ve just dloaded glew and run glewinfo:
i’m running on a geforce4 ti4600, 41.09 drivers
is there anything i could do about it?
and more than this i’ve looked into the headers you were linking to and couldnt find nothing about some sort of GL_ARB_fragment_program tokens, only fragment_shader_ati can be found
any ideas to fix this?
as usual, thanks a lot
you need Detonator 42.01 beta http://www.guru3d.com and the nvidia emulation tool http://developer.nvidia.com/docs/IO/3260/ATT/NVEmulate.exe (or a GeforceFX )
The glext headers don’t include the new extensions but glew has those in. Just call init glew, activate emualation and the show goes on…
[This message has been edited by ScottManDeath (edited 01-17-2003).]
lol! sounds like glew is doing some magic!
thanks a bunch this should definitely fix my prob!