LearnOpenGL 阶段性总结 (截至入门-摄影机)

在学习OpenGL的过程中总会碰到各种各样奇怪的错误,每次都会检查半天,搞得很心烦,故现在整理一下。
可以大致分为三个阶段的错误:
* 编译前的错误
* 编译时发现的错误
* 运行结果的错误


首先是编译前的错误:
1.GLM: perspective function taking degrees as a parameter is deprecated. #define GLM_FORCE_RADIANS before including GLM headers to remove this message.
当没有在开头预定义GLM_FORCE_RADIANS 时候,会出现类似的警告。


glm::mat4 projection = glm::perspective(glm::radians(45.0f), (float)SCR_WIDTH / (float)SCR_HEIGHT, 0.1f, 100.0f);
    ourShader.setMat4("projection", projection);

其中的glm::radians(45.0f)导致上面的warning的出现,现在版本的GLM已经采用degree来做默认单位,当我们强行把一个degree(45)转换成一个radians,并传递给GLM的时候,就会和我们设想不一样的效果。
错误的效果
采用了
所以当在开头预定义#define GLM_FORCE_RADIANS 可以恢复到正确的效果
正确的效果
这里写图片描述


编译时的错误
1. error C5145: must write to gl_Position
——很有可能这个时候的vertex shader 文件中的gl_Position 写错了,甚至就是忘记写了。


运行时的错误
1.出现物体放的很大,同时呈现破碎状态,如下图:这里写图片描述
要考虑 是否 有可能是
——perspective中的near平面设置的太大 导致物体被截取了
——是否可能是第一种情况中提到的 角度 和 弧度 的转换关系 导致视角过小
——可能是glUniformMatrix4fv当中的参数设置错误,GL_FALSE 变为 GL_FLOAT 也会导致错误。


突然就只想到这些。。。
想起日后补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值