首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绘制立方体的无Glu示例?

绘制立方体的无Glu示例?
EN

Stack Overflow用户
提问于 2011-12-24 10:38:13
回答 3查看 1.8K关注 0票数 1

我正试着回到OpenGL,但是我的知识和数学现在已经生疏了。我以前用的是C++,但现在我更喜欢C# ...尝试使用OpenTK。显然,Glu从GL3.1开始就被弃用了,所以我想找一个用C#或C++在屏幕上绘制一个立方体的无Glu例子(我可以翻译它)。

我发现最具挑战性的部分是设置视口/视角/相机/透视/初始化的东西。我可以清除缓冲区,并在3D空间中放置点,但其他东西我忘记了!

特别是,我需要Glu.PerpsectiveGlu.LookAt的替代品。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-24 18:02:30

我建议看看http://openglbook.com/,它说它是OpenGL 4,但是这里描述的一切(到目前为止只是基本的)也直接适用于OpenGL 3。我认为这是快速开始使用最新OpenGL版本的最好资源。其他非常好的资源是Learning Modern 3D Graphics Programming,它更深入一些。

您必须注意,OpenGL 3和更高版本会忽略固定管道。您仍然可以使用兼容性配置文件来使用固定管道,但最好学习可编程管道。这意味着不再有即时模式(例如,glVertex3f和类似的)和显示列表。在绘制之前,您必须将顶点数据直接提交到显卡中。这是使用buffer对象完成的,它只是一个顶点数据数组。然后你必须提交一个GLSL程序来处理这些数据,比如应用模型视图和投影矩阵(即使你不需要花哨的着色器)。

最后但并非最不重要的是,当前的OpenGL版本没有实现矩阵运算和光照(同样,除非使用兼容性配置文件)。您需要自己创建所有矩阵,但由于这是一项单调乏味的工作,因此我建议使用外部库。

这一切听起来可能很可怕,坦率地说,我发现学习可编程管道比固定管道更难。然而,它为您提供了更多的灵活性。

票数 2
EN

Stack Overflow用户

发布于 2011-12-30 15:51:40

OpenTK有自己的数学类,包括一个4x4矩阵- Matrix4。它包括正交投影法和透视投影法-- Matrix4.CreateOrthographic(...);Matrix4.CreatePerspectiveFieldOfView(...);,还有一种lookAt方法:Matrix4.LookAt(...);

OpenGL的OpenTK绑定接受GL.LoadMatrix()GL.UniformMatrix4()等方法的Matrix4。

票数 1
EN

Stack Overflow用户

发布于 2011-12-28 11:55:42

Ch4 of the OpenGL book中,GLu.Perspective或多或少等同于:

代码语言:javascript
复制
98  Matrix CreateProjectionMatrix(
99      float fovy,
100     float aspect_ratio,
101     float near_plane,
102     float far_plane
103 )
104 {
105     Matrix out = { { 0 } };
106  
107     const float
108         y_scale = Cotangent(DegreesToRadians(fovy / 2)),
109         x_scale = y_scale / aspect_ratio,
110         frustum_length = far_plane - near_plane;
111  
112     out.m[0] = x_scale;
113     out.m[5] = y_scale;
114     out.m[10] = -((far_plane + near_plane) / frustum_length);
115     out.m[11] = -1;
116     out.m[14] = -((2 * near_plane * far_plane) / frustum_length);
117  
118     return out;
119 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8622320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档