glutWireCube()是用C++绘制立方体的函数,在OpenTK中如何?任何函数都被用于替换?OpenGL:如何在OpenTK中绘制立方体?
1
A
回答
2
glutWireCube不是OpenGL函数。它是GLUT的一部分,常常被误认为是OpenGL的一部分。
1
该函数使用旧的固定功能流水线绘制一个立方体,根据需要进行修改。 为了简洁起见,我已经在函数内部写了变量声明,但如果需要更多性能,则应将它们移出函数。我也建议重写函数来使用GL.DrawElements()。
private void DrawBox(float size)
{
float[,] n = new float[,]{
{-1.0f, 0.0f, 0.0f},
{0.0f, 1.0f, 0.0f},
{1.0f, 0.0f, 0.0f},
{0.0f, -1.0f, 0.0f},
{0.0f, 0.0f, 1.0f},
{0.0f, 0.0f, -1.0f}
};
int[,] faces = new int[,]{
{0, 1, 2, 3},
{3, 2, 6, 7},
{7, 6, 5, 4},
{4, 5, 1, 0},
{5, 6, 2, 1},
{7, 4, 0, 3}
};
float[,] v = new float[8,3];
int i;
v[0,0] = v[1,0] = v[2,0] = v[3,0] = -size/2;
v[4,0] = v[5,0] = v[6,0] = v[7,0] = size/2;
v[0,1] = v[1,1] = v[4,1] = v[5,1] = -size/2;
v[2,1] = v[3,1] = v[6,1] = v[7,1] = size/2;
v[0,2] = v[3,2] = v[4,2] = v[7,2] = -size/2;
v[1,2] = v[2,2] = v[5,2] = v[6,2] = size/2;
GL.Begin(BeginMode.Quads);
for (i = 5; i >= 0; i--) {
GL.Normal3(ref n[i, 0]);
GL.Vertex3(ref v[faces[i, 0], 0]);
GL.Vertex3(ref v[faces[i, 1], 0]);
GL.Vertex3(ref v[faces[i, 2], 0]);
GL.Vertex3(ref v[faces[i, 3], 0]);
}
GL.End();
}
相关问题
- 1. 如何在OpenGL中绘制立方体?
- 2. Opengl基本立方体绘图,但立方体绘制单色
- 3. 不能在立方体内绘制 - OpenGL
- 4. 如何在OpenGL中绘制多个立方体
- 5. OpenGL绘制多个等角立方体
- 6. 使用Opengl绘制立方体3D
- 7. C++/OpenGL - 绘制立方体VBO
- 8. 如何绘制立方体
- 9. 如何在一些世界坐标绘制立方体,OpenGL
- 10. 在OpenTK中绘制一个四面体
- 11. 如何绘制没有索引的立方体?OpenGL ES 2.0
- 12. 绘制立方体,如果任何键点击opengl 3d
- 13. 在opengl中随机位置绘制多个立方体android
- 14. 在OpenGL ES中绘制立方体需要多少顶点?
- 15. 使用鼠标在Opengl中绘制立方体
- 16. 如何绘制立方体,立方体和金字塔
- 17. 在opengl中绘制体素(立方体)的最有效方法是什么?
- 18. OpenTK OpenGL绘图文本
- 19. 如何绘制重叠立方体
- 20. webgl如何绘制多个立方体
- 21. 如何在OpenTK(.Glu.Cylinder)中绘制圆柱体?
- 22. OpenGL 3.2+在现有顶点周围绘制立方体
- 23. OpenGL/GLUT:glTranslatef和glRotatef在绘制立方体之前还是之后?
- 24. 在glOrtho()视图中绘制立方体?
- 25. 无法在LWJGL中绘制立方体
- 26. python绘制3D立方体
- 27. 如何在OpenTk中使用另一种方法绘制线条
- 28. 使用glDrawArrays绘制OpenGL ES的立方体
- 29. 奇OpenGL的行为绘制一个立方体
- 30. 可可和OpenGL:未能绘制立方体