Fix alpha issues

Fix selection bug
This commit is contained in:
bkuker 2013-03-04 15:25:23 -05:00
parent 701aa4b151
commit cc8db8cc96
2 changed files with 10 additions and 10 deletions

View File

@ -102,9 +102,9 @@ public class RealisticRenderer extends RocketRenderer {
@Override
public void renderComponent(final GL2 gl, final RocketComponent c, final float alpha) {
render(gl, cr.getGeometry(c, Surface.INSIDE), DefaultAppearance.getDefaultAppearance(c), true, 1.0f);
render(gl, cr.getGeometry(c, Surface.OUTSIDE), getAppearance(c), true, alpha);
render(gl, cr.getGeometry(c, Surface.EDGES), getAppearance(c), false, alpha);
render(gl, cr.getGeometry(c, Surface.INSIDE), DefaultAppearance.getDefaultAppearance(c), true, alpha);
}
private void render(GL2 gl, Geometry g, Appearance a, boolean decals, float alpha) {

View File

@ -73,10 +73,7 @@ public abstract class RocketRenderer {
pickParts.add(c);
if (isDrawnTransparent(c)) {
gl.glEnable(GL.GL_CULL_FACE);
gl.glCullFace(GL.GL_FRONT);
cr.getGeometry(c, Surface.ALL).render(gl);
gl.glDisable(GL.GL_CULL_FACE);
cr.getGeometry(c, Surface.INSIDE).render(gl);
} else {
cr.getGeometry(c, Surface.ALL).render(gl);
}
@ -134,6 +131,8 @@ public abstract class RocketRenderer {
} // done with selection outline
gl.glEnable(GL.GL_CULL_FACE);
gl.glCullFace(GL.GL_BACK);
// Draw all inner components
for (RocketComponent c : configuration) {
if (isDrawn(c)) {
@ -142,13 +141,13 @@ public abstract class RocketRenderer {
}
}
}
gl.glDisable(GL.GL_CULL_FACE);
//gl.glDisable(GL.GL_CULL_FACE);
renderMotors(gl, configuration);
// Draw Tube and Transition back faces, blended with depth test
// so that they show up behind.
gl.glEnable(GL.GL_CULL_FACE);
/*gl.glEnable(GL.GL_CULL_FACE);
gl.glCullFace(GL.GL_FRONT);
for (RocketComponent c : configuration) {
if (isDrawn(c)) {
@ -158,11 +157,12 @@ public abstract class RocketRenderer {
}
}
gl.glDisable(GL.GL_CULL_FACE);
*/
// Draw T&T front faces blended, without depth test
gl.glEnable(GL.GL_BLEND);
gl.glEnable(GL.GL_CULL_FACE);
gl.glCullFace(GL.GL_BACK);
//gl.glEnable(GL.GL_CULL_FACE);
//gl.glCullFace(GL.GL_BACK);
for (RocketComponent c : configuration) {
if (isDrawn(c)) {
if (isDrawnTransparent(c)) {
@ -171,7 +171,7 @@ public abstract class RocketRenderer {
}
}
gl.glDisable(GL.GL_BLEND);
gl.glDisable(GL.GL_CULL_FACE);
//gl.glDisable(GL.GL_CULL_FACE);
}