代码和效果
打开OpenGL Console,把下面的代码复制到编辑器里:
import java.nio.ByteBuffer
import java.nio.ByteOrder
import javax.media.opengl.GL
def vertexShaderCode = """
attribute vec4 a_Position;
void main() {
gl_Position = a_Position;
gl_PointSize = 10.0;
}
"""
def fragmentShaderCode = """
precision mediump float;
void main() {
gl_FragColor = vec4(0.7, 0.0, 0.3, 1.0);
}
"""
def shaderProgram = glob.compileAndLink(vertexShaderCode, fragmentShaderCode)
def aPositionLocation = shaderProgram.getAttribLocation("a_Position")
shaderProgram.use();
def BYTES_PER_FLOAT = 4
def POSITION_ELEMENT_COUNT = 2
def POINT_COUNT = 3
def vertices = [
0.0f, 0.0f,
0.5f, 0.5f,
-0.2f,-0.2f
] as float[];
def vertexData = ByteBuffer
.allocateDirect(vertices.length * BYTES_PER_FLOAT)
.order(ByteOrder.nativeOrder())
.asFloatBuffer()
vertexData.put(vertices)
vertexData.position(0)
gl.glVertexAttribPointer(aPositionLocation,
POSITION_ELEMENT_COUNT, gl.GL_FLOAT, false, 0, vertexData)
gl.glEnableVertexAttribArray(a