Example usage for org.lwjgl.opengl ARBPointSprite GL_POINT_SPRITE_ARB

List of usage examples for org.lwjgl.opengl ARBPointSprite GL_POINT_SPRITE_ARB

Introduction

In this page you can find the example usage for org.lwjgl.opengl ARBPointSprite GL_POINT_SPRITE_ARB.

Prototype

int GL_POINT_SPRITE_ARB

To view the source code for org.lwjgl.opengl ARBPointSprite GL_POINT_SPRITE_ARB.

Click Source Link

Document

Accepted by the cap parameter of Enable, Disable, and IsEnabled, by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev, and by the target parameter of TexEnvi, TexEnviv, TexEnvf, TexEnvfv, GetTexEnviv, and GetTexEnvfv.

Usage

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);
}