首页 / 知识
关于c ++:OpenGL旋转
2023-04-12 23:45:00

OpenGL Rotation
我正在尝试在OpenGL中进行简单的旋转,但必须遗漏要点。 目前,我有这样的代码:
但是结果不是三角形旋转了90度。
编辑 通过在glRotatef调用之前添加以下内容,确保正在修改Modelview矩阵:
否则,您可能正在修改投影或纹理矩阵。 您得到1个单位的直线吗?似乎90度腐烂。 Y周围将让您看着没有深度的三角形的边。 您应该尝试绕Z轴旋转,看看是否有更有意义的东西。 OpenGL有两个与几何图形显示相关的矩阵,即ModelView和Projection。在数据在屏幕上可见之前,两者都将应用于坐标。首先,应用ModelView矩阵,将数据从模型空间转换为视图空间。然后,将Projection矩阵应用于,将来自视图空间的数据转换为2D监视器上的"投影"。 ModelView用于将多个对象放置在"世界"中的位置,Projection用于将对象放置在屏幕上。 您的代码看起来不错,因此我认为通过阅读文档可以知道glPushMatrix()之类的函数的本质。如果围绕Z旋转仍然没有意义,请通过调用glMatrixMode来验证是否正在编辑ModelView矩阵。 "接受的答案"并不完全正确-绕Z旋转将无法帮助您看到此三角形,除非您在执行此代码之前做过一些奇怪的事情。在这种情况下,删除glOrtho(...)调用可能已解决了该问题,但是您仍然还有其他一些问题。 编写的代码存在两个主要问题:
我能推荐的最好的方法是使用NeHe教程-http://nehe.gamedev.net/。他们首先向您展示了如何在多个系统中设置OpenGL,如何移动到绘制三角形,并确定地继续进行更高级的主题。它们非常容易遵循。 关于投影矩阵,您可以从这里找到一个很好的起点: http://msdn.microsoft.com/zh-CN/library/bb147302(VS.85).aspx 它说明了如何构造一种类型的投影矩阵。正交投影是这种矩阵的非常基本/原始的形式,基本上是将3个轴坐标中的2个坐标投影到屏幕上(您仍然可以翻转轴并缩放它们,但没有扭曲或透视效果) 。 在3D渲染中,矩阵的转换很可能是最重要的事情之一,并且基本上涉及3个矩阵阶段:
通常,将3矩阵相乘的结果称为WorldViewProjection矩阵(如果您曾经碰过这个术语的话),因为它会将坐标从模型空间转换为世界,然后转换为摄影机,最后转换为屏幕表示。 玩得开心 我想推荐一本书: 3D计算机图形学:Samuel R. Buss的OpenGL数学入门 它提供了非常清晰的解释,并且数学广泛适用于非图形领域。您还将找到对正交投影与透视变换的完整描述。 当我初次了解OpenGL时,NeHe教程(请参见左侧菜单)非常宝贵。 |
最新内容
相关内容
python是解释型吗?
python是解释型吗?,工作,平台,培训,解释性,虚拟机,语言,高层次,源码,脚本语言,之前,python是一种跨平台的计算机程序设计语言。是一个高层次python解释器写代码如何换行
python解释器写代码如何换行,代码,培训,方法,示例,字符串,斜杠,行书,括号,有用,下面,使用以下方法可以使Python的代码换行:用反斜杠链接多行代python怎么链接数据库
python怎么链接数据库,培训,数据,一致,流程,项目,数据库,接口,参数,结果,语句,python数据库接口支持非常多的数据库,你可以选择适合你项目的pythoninput怎么解释
pythoninput怎么解释,培训,函数,版本,字符串,以后,以上,提示,原因,功能,更多,python中input函数有类似c中的scanf函数的功能。Python2中inputpython解释器的多种使用
python解释器的多种使用,培训,文件,多种,脚本,后面,目录,终端,文件名,文件夹,路径,python解释器的多种使用1、在终端输入python就可以运行Pytpython解释器有哪几种
python解释器有哪几种,代码,平台,网络,技术,培训,提示符,字节,不是,独立性,绝大部分,python解释器有哪几种1、CPython是使用最广的Python解释python解释器有几种
python解释器有几种,代码,技术,培训,语言,字节,速度,教程,内核,虚拟机,外观,python解释器有几种1、CPythonCPython这个解释器是用C语言开发的关于eclipse:Java多行注释是否解释
关于eclipse:Java多行注释是否解释字符串?,关于eclipse:Java多行注释是否解释字符串?,多行注释,语言,适用于,这个问题,Do Java multi-lin关于正则表达式:将URL转换为C#字符串
关于正则表达式:将URL转换为C#字符串中的超链接的最简单方法?,关于正则表达式:将URL转换为C#字符串中的超链接的最简单方法?,方法,超链接,关于框架:MapReduce的简单解释?
关于框架:MapReduce的简单解释?,关于框架:MapReduce的简单解释?,麻木,解释,术语,这是,Simple explanation of MapReduce?与我的CouchDB问关于Windows:如何从Python脚本捕获P
关于Windows:如何从Python脚本捕获Python解释器和/或CMD.EXE的输出?,关于Windows:如何从Python脚本捕获Python解释器和/或CMD.EXE的输关于Java:为什么我不能在接口中声明
关于Java:为什么我不能在接口中声明静态方法?,关于Java:为什么我不能在接口中声明静态方法?,声明,静态方法,接口,这一,Why can't I decl