阅读该篇以前,推荐优先阅读—OpenTK—空间中单个三维点的绘制,之前做过的解释这里不再赘述。这里直接上代码并展示最终的效果。
- 创建主程序中的类
- 构建主程序中调用的
GUI
窗口界面的类
在之前的示例中我们并未详细介绍过GL.DrawArrays(PrimitiveType.Lines, 0, 2)
函数的参数,这里做一下补充。
GL.DrawArrays()
函数调用方法:
各个参数的意义:。
PrimitiveType mode
:说明要渲染图元的类型,该参数所有可选的类型如下:
PrimitiveType可用参数 | 对应OpenGL |
Points | GL_LINES = 0x0000 |
Lines | GL_LINES = 0x0001 |
LineLoop | GL_LINES = 0x0002 |
LineStrip | GL_LINES = 0x0003 |
Triangles | GL_LINES = 0x0004 |
TriangleStrip | GL_LINES = 0x0005 |
TriangleFan | GL_LINES = 0x0006 |
Quads | GL_LINES = 0x0007 |
QuadsExt | GL_LINES = 0x0007 |
LinesAdjacency | GL_LINES = 0x000A |
LinesAdjacencyArb | GL_LINES = 0x000A |
LinesAdjacencyExt | GL_LINES = 0x000A |
LineStripAdjacency | GL_LINES = 0x000B |
LineStripAdjacencyArb | GL_LINES = 0x000B |
LineStripAdjacencyExt | GL_LINES = 0x000B |
TrianglesAdjacency | GL_LINES = 0x000C |
TrianglesAdjacencyArb | GL_LINES = 0x000C |
TrianglesAdjacencyExt | GL_LINES = 0x000C |
TriangleStripAdjacency | GL_LINES = 0x000D |
TriangleStripAdjacencyArb | GL_LINES = 0x000D |
TriangleStripAdjacencyExt | GL_LINES = 0x000D |
Patches | GL_LINES = 0x000E |
PatchesExt | GL_LINES = 0x000E |
我们使用时应该使用第一列中的参数,这里的第二列表示我们使用参数对应的OpenGL
中的参数,仅仅供对比理解使用。
int first
:说明数组开始的索引值,本例中我们使用的元素从第一个开始,因此该值应该被设置为0
。
int count
:说明需要被渲染的索引的个数,本例中我们有两个端点需要被渲染,因此该值应该被设置为2
。
- 着色器类
- 端点着色器
- 片段着色器
运行程序可以得到下面的结果:
码字不易,如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~