OpenGL ES2学习笔记(6)-- Line Strip和Line Loop

OpenGL ES2学习笔记(6)-- Line Strip和Line Loop,第1张

概述Line Strip 上一篇文章画了两条线段,但是用了4个点。如果几条线段首尾相接的话,可以让OpenGL把他们当成Line Strip来画,这样就可以用n+1个点来画n条线段。 代码 import java.nio.ByteBufferimport java.nio.ByteOrderimport javax.media.opengl.GLdef vertexShaderCode = " line Strip

上一篇文章画了两条线段,但是用了4个点。如果几条线段首尾相接的话,可以让OpenGL把他们当成line Strip来画,这样就可以用n+1个点来画n条线段。

代码

import java.nio.ByteBufferimport java.nio.ByteOrderimport javax.media.opengl.GLdef 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(1.0,0.5,0.0,1.0);  }"""def shaderProgram = glob.compileAndlink(vertexshadercode,fragmentshadercode)def apositionLocation = gl.glGetAttribLocation(shaderProgram.objectID,"a_position")shaderProgram.use()def BYTES_PER_float = 4def position_ELEMENT_COUNT = 2def POINT_COUNT = 4def vertices = [ -0.2f,-0.8f,-0.2f,0.0f,0.2f,-0.6f,] 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,vertexData)gl.glEnabLevertexAttribarray(apositionLocation)gl.glClearcolor(0.0f,0.0f)gl.glClear(gl.GL_color_BUFFER_BIT)gl.gllinewidth(4)gl.glDrawArrays(gl.GL_liNE_STRIP,POINT_COUNT)
唯一有必要说明的就是这段代码:

gl.glDrawArrays(gl.GL_liNE_STRIP,POINT_COUNT)
传入的参数是 GL_LINE_STRIP而不是 GL_LINES。

效果

line Loop

如果line Strip闭合的话,那么就变成了line Loop。修改上面的脚本,把传递给glDrawArrays()方法的GL_liNE_STRIP参数改成GL_LINE_LOOP:

gl.glDrawArrays(gl.GL_liNE_LOOP,POINT_COUNT)

总结

以上是内存溢出为你收集整理的OpenGL ES2学习笔记(6)-- Line Strip和Line Loop全部内容,希望文章能够帮你解决OpenGL ES2学习笔记(6)-- Line Strip和Line Loop所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1265546.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存