List of usage examples for org.lwjgl.opengl ARBPointSprite GL_POINT_SPRITE_ARB
int GL_POINT_SPRITE_ARB
To view the source code for org.lwjgl.opengl ARBPointSprite GL_POINT_SPRITE_ARB.
Click Source Link
From source file:com.ardor3d.renderer.lwjgl.LwjglRenderer.java
License:Open Source License
@Override public void setupPointParameters(final float pointSize, final boolean antialiased, final boolean isSprite, final boolean useDistanceAttenuation, final FloatBuffer attenuationCoefficients, final float minPointSize, final float maxPointSize) { final RenderContext context = ContextManager.getCurrentContext(); // TODO: make a record for point states GL11.glPointSize(pointSize);// w w w .ja v a 2 s .c om if (isSprite && context.getCapabilities().isPointSpritesSupported()) { GL11.glEnable(ARBPointSprite.GL_POINT_SPRITE_ARB); GL11.glTexEnvi(ARBPointSprite.GL_POINT_SPRITE_ARB, ARBPointSprite.GL_COORD_REPLACE_ARB, GL11.GL_TRUE); } if (useDistanceAttenuation && context.getCapabilities().isPointParametersSupported()) { ARBPointParameters.glPointParameterARB(ARBPointParameters.GL_POINT_DISTANCE_ATTENUATION_ARB, attenuationCoefficients); ARBPointParameters.glPointParameterfARB(ARBPointParameters.GL_POINT_SIZE_MIN_ARB, minPointSize); ARBPointParameters.glPointParameterfARB(ARBPointParameters.GL_POINT_SIZE_MAX_ARB, maxPointSize); } if (antialiased) { GL11.glEnable(GL11.GL_POINT_SMOOTH); GL11.glHint(GL11.GL_POINT_SMOOTH_HINT, GL11.GL_NICEST); } }
From source file:espresso3d.engine.renderer.particle.E3DParticleRendererARBPointSprite.java
License:Open Source License
private void setupPointSpriteParameters(double spriteSize) { particleDistanceScalarBuffer.clear(); // particleDistanceScalarBuffer.put(0.0f);//1.0f); particleDistanceScalarBuffer.put(0.0f);//1.0f); particleDistanceScalarBuffer.put(0.0f); particleDistanceScalarBuffer.put((float) (1.0 / (getEngine().getCurrentViewport().getWidth() * getEngine().getCurrentViewport().getHeight())));//0.1f); particleDistanceScalarBuffer.rewind(); ARBPointParameters.glPointParameterARB(ARBPointParameters.GL_POINT_DISTANCE_ATTENUATION_ARB, particleDistanceScalarBuffer); ARBPointParameters.glPointParameterfARB(ARBPointParameters.GL_POINT_SIZE_MIN_ARB, 1f);//(float)particle.getSize());//1f ); ARBPointParameters.glPointParameterfARB(ARBPointParameters.GL_POINT_SIZE_MAX_ARB, maxPointSpriteSize); ARBPointParameters.glPointParameterfARB(ARBPointParameters.GL_POINT_FADE_THRESHOLD_SIZE_ARB, 100f); /* GL14.glPointParameter(GL14.GL_POINT_DISTANCE_ATTENUATION, particleDistanceScalarBuffer); GL14.glPointParameterf( GL14.GL_POINT_SIZE_MIN, 1f);//(float)particle.getSize());//1f ); GL14.glPointParameterf( GL14.GL_POINT_SIZE_MAX, maxPointSpriteSize); GL14.glPointParameterf(GL14.GL_POINT_FADE_THRESHOLD_SIZE, 100f); *///from www . jav a 2 s . c o m GL14.glPointParameterf(GL20.GL_POINT_SPRITE_COORD_ORIGIN, GL20.GL_LOWER_LEFT); GL11.glTexEnvf(ARBPointSprite.GL_POINT_SPRITE_ARB, ARBPointSprite.GL_COORD_REPLACE_ARB, GL11.GL_TRUE); // GL11.glTexEnvf( GL20.GL_POINT_SPRITE, GL20.GL_COORD_REPLACE, GL11.GL_TRUE ); GL11.glPointSize((float) spriteSize); //POINT_SIZE_WORLD_COORD_SCALAR); }
From source file:espresso3d.engine.renderer.particle.E3DParticleRendererARBPointSprite.java
License:Open Source License
public void renderParticle(E3DParticle particle) { //Setup textures int glTextureID = -1; int detail0TextureID = -1; int detail1TextureID = -1; if (particle.getQuad().isTextureAvailable()) glTextureID = particle.getQuad().getTexture().getGlTextureID(); if (particle.getQuad().isTextureDetail0Available()) detail0TextureID = particle.getQuad().getTextureDetail0().getGlTextureID(); if (particle.getQuad().isTextureDetail1Available()) detail1TextureID = particle.getQuad().getTextureDetail1().getGlTextureID(); setupPointSpriteParameters(particle.getSize()); getEngine().getGeometryRenderer().disableAllTextureUnits(); // if(textured) getEngine().getGeometryRenderer().setupTextureUnits(glTextureID, detail0TextureID, detail1TextureID); E3DVector3F position = null;/* w ww . ja v a2s . com*/ GL11.glBegin(GL11.GL_POINTS); { position = particle.getOrientation().getPosition(); GL14.glPointParameterf(GL14.GL_BLEND_SRC_ALPHA, (float) particle.getAlpha());//(float)particle.getSize());//1f ); GL11.glColor4f(1f, 1f, 1f, (float) particle.getAlpha()); GL11.glVertex3f((float) position.getX(), (float) position.getY(), (float) position.getZ()); } GL11.glEnd(); GL11.glDisable(ARBPointSprite.GL_POINT_SPRITE_ARB); }
From source file:espresso3d.engine.renderer.particle.E3DParticleRendererARBPointSprite.java
License:Open Source License
public void renderParticleList(List particleList, int renderMode) { if (particleList == null) return;/*w ww . jav a 2s . com*/ E3DParticle particle = null; List renderList; int listSize = particleList.size(); if (listSize <= 0) return; int bufferSize = listSize * 12; //use 12 to account for the quad (for vertex colors, etc) even though there aren't that many vertices if (bufferSize > E3DGeometryRenderer.MAX_BUFFER_SIZE) { int maxLength = (int) (E3DGeometryRenderer.MAX_BUFFER_SIZE / 12.0); renderParticleList(particleList.subList(maxLength, particleList.size()), renderMode); renderList = particleList.subList(0, maxLength); } else renderList = particleList; getEngine().getGeometryRenderer().vertexBuffer.clear(); getEngine().getGeometryRenderer().colorBuffer.clear(); E3DVector3F position = null; for (int i = 0; i < renderList.size(); i++) { particle = (E3DParticle) renderList.get(i); position = particle.getOrientation().getPosition(); getEngine().getGeometryRenderer().vertexBuffer.put((float) position.getX()); getEngine().getGeometryRenderer().vertexBuffer.put((float) position.getY()); getEngine().getGeometryRenderer().vertexBuffer.put((float) position.getZ()); particle.getQuad().appendVertexColorBuffer(getEngine().getGeometryRenderer().colorBuffer); } setupPointSpriteParameters(particle.getSize()); //Setup textures int glTextureID = -1; int detail0TextureID = -1; int detail1TextureID = -1; if (particle.getQuad().isTextureAvailable()) glTextureID = particle.getQuad().getTexture().getGlTextureID(); if (particle.getQuad().isTextureDetail0Available()) detail0TextureID = particle.getQuad().getTextureDetail0().getGlTextureID(); if (particle.getQuad().isTextureDetail1Available()) detail1TextureID = particle.getQuad().getTextureDetail1().getGlTextureID(); getEngine().getGeometryRenderer().disableAllTextureUnits(); // if(textured) getEngine().getGeometryRenderer().setupTextureUnits(glTextureID, detail0TextureID, detail1TextureID); // Put arrays in float buffers and REWIND them (very important). getEngine().getGeometryRenderer().vertexBuffer.rewind(); getEngine().getGeometryRenderer().colorBuffer.rewind(); GL11.glEnable(ARBPointSprite.GL_POINT_SPRITE_ARB); // Send float buffers to LWJGL. GL11.glVertexPointer(3, 0, getEngine().getGeometryRenderer().vertexBuffer); GL11.glColorPointer(3, 0, getEngine().getGeometryRenderer().colorBuffer); GL11.glDrawArrays(GL11.GL_POINTS, 0, renderList.size()); GL11.glDisable(ARBPointSprite.GL_POINT_SPRITE_ARB); }