A
Andi0310
Neues Mitglied
- 0
Hallo.
Ich habe folgendes Problem.
Ich muss über OpenGL eine Insel im Wasser erstellen.
Diese soll sich aber nicht spiegeln sonder es soll an den Strandabschnitten der Boden unter Wasser noch sichtbar sein.
Ich habe mir folgendes überlegt.
1. Die Insel rendern.
2. Wasser unter Einbeziehung des DepthTests in den Stencilbuffer rendern.
3. Das Wasser mit allen Einstellungen dort wo der Stencil 1 ist in die Grafik rendern.
Wegen der Transparenz des Wassers mus ich beim Finalrendern den DepthTest auschalten.
Jetzt zieht er mir aber das Wasser über die komplette Insel.
Habe ich beim Rendern mit DepthTest in den Stencilbuffer irgendetwas verkehrt gemach oder woran kann es liegen ?.
Das einzige was ich brauche sind die richtigen Einstellungen, dass dort wo beim ersten rendern in den Depthtest geschrieben wird in den Stencilbuffer 1 gesetzt wird und dann beim zweiten rendern nur dort gerendert wird wo Stencil =1.
Danke .
Ich habe folgendes Problem.
Ich muss über OpenGL eine Insel im Wasser erstellen.
Diese soll sich aber nicht spiegeln sonder es soll an den Strandabschnitten der Boden unter Wasser noch sichtbar sein.
Ich habe mir folgendes überlegt.
1. Die Insel rendern.
2. Wasser unter Einbeziehung des DepthTests in den Stencilbuffer rendern.
3. Das Wasser mit allen Einstellungen dort wo der Stencil 1 ist in die Grafik rendern.
Code:
In SucrfaceCreate
glClearStencil(0);
DrawWasser()
{
...
...
glEnable(GL11.GL_STENCIL_TEST);
glColorMask(false,flase,false,false);
glStencilFunc(GL11.GL_ALWAYS,1,1);
glStencilOp(GL11.GL_ZERO,GL11.GL_ZERO,GL11.GL_REPLACE);
glDrawElements(GL11.GL_TRIANGLES,indices.length,GL11.GL_UNSIGNED_SHORT,indexbuffer);
...
glColorMask(true,true,true,true);
glStencilFunc(GL11.GL_EQUAL,1,1);
glStencilOp(GL11.GL_KEEP,GL11.GL_KEEP,GL11.GL_KEEP);
glDrawElements(GL11.GL_TRIANGLES,indices.length,GL11.GL_UNSIGNED_SHORT,indexbuffer);
...
}
Wegen der Transparenz des Wassers mus ich beim Finalrendern den DepthTest auschalten.
Jetzt zieht er mir aber das Wasser über die komplette Insel.
Habe ich beim Rendern mit DepthTest in den Stencilbuffer irgendetwas verkehrt gemach oder woran kann es liegen ?.
Das einzige was ich brauche sind die richtigen Einstellungen, dass dort wo beim ersten rendern in den Depthtest geschrieben wird in den Stencilbuffer 1 gesetzt wird und dann beim zweiten rendern nur dort gerendert wird wo Stencil =1.
Danke .