Applying shader to engine-generated objects
by Bryce "Cogburn" Weiner · in Torque Game Engine Advanced · 02/18/2007 (2:22 pm) · 1 replies
I'm passing a shader parameter to a custom world object (a laser beam) and almost have it working, except I'm having some issues applying the shader to a object.
I tried referencing how precipitation works, but it's not quite analogous. I'm not using materials and am using shader parameters to customize the object.
Based on the following code, where would setShader() go?
I'm prepping the shader properly, but after I set the shader arguments, no matter where I put setShader() it never renders.
I tried referencing how precipitation works, but it's not quite analogous. I'm not using materials and am using shader parameters to customize the object.
Based on the following code, where would setShader() go?
//glEnable(GL_BLEND);
GFX->setAlphaBlendEnable(true);
//glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
GFX->setSrcBlend(GFXBlendSrcAlpha);
GFX->setDestBlend(GFXBlendInvSrcAlpha);
// Enable Texturing.
//glEnable(GL_TEXTURE_2D); ---> Check tsLastDetail.cpp for reference
GFX->setTextureStageColorOp(0, GFXTOPModulate);
GFX->setTextureStageColorOp(1, GFXTOPDisable);
// Select the objects' texture.
//glBindTexture(GL_TEXTURE_2D, mTextureHandles[mIndex].getGLName()); ---> Check fxFoilageReplicator.cpp for reference
GFX->setTexture(0, mTextureHandles[mIndex]);
// Set Colour/Alpha.
//glColor4f(1,1,1,1); ---> Check tsLastDetail.cpp for reference
//glBegin(GL_QUADS); ---> Check fxlight.cpp for reference
//GFX->setupGenericShaders( GFXDevice::GSModColorTexture );
PrimBuild::color4f(1,1,1,1);
PrimBuild::begin(GFXTriangleFan, 4);
//glTexCoord2f(0,0);
PrimBuild::texCoord2f(0, 0);
//glVertex3f(sPt1.x, sPt1.y, sPt1.z);
PrimBuild::vertex3f(sPt1.x, sPt1.y, sPt1.z);
//glTexCoord2f(1,0);
PrimBuild::texCoord2f(1, 0);
//glVertex3f(sPt2.x, sPt2.y, sPt2.z);
PrimBuild::vertex3f(sPt2.x, sPt2.y, sPt2.z);
//glTexCoord2f(1,1);
PrimBuild::texCoord2f(1, 1);
//glVertex3f(ePt2.x, ePt2.y, ePt2.z);
PrimBuild::vertex3f(ePt2.x, ePt2.y, ePt2.z);
//glTexCoord2f(0,1);
PrimBuild::texCoord2f(0, 1);
//glVertex3f(ePt1.x, ePt1.y, ePt1.z);
PrimBuild::vertex3f(ePt1.x, ePt1.y, ePt1.z);
//glEnd();
PrimBuild::end();
// Restore our canonical rendering state.
//glDisable(GL_BLEND);
GFX->setAlphaBlendEnable(false);
//glDisable(GL_TEXTURE_2D);
GFX->setLightingEnable(false);I'm prepping the shader properly, but after I set the shader arguments, no matter where I put setShader() it never renders.
Torque Owner Bryce "Cogburn" Weiner
It's mShader->process().
>_<