真是搞不懂这投影矩阵

in 编程
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

在C++程序中准备好投影矩阵与变换矩阵, 然后再在顶点着色器中进行运算.

记录遇到的一些问题:

#1. Matrix4<float>::createFrustum vmath的这个函数, 直接使用的话, 是看不见东西的, 但它的算法与书上是一样的.
投影矩阵第三行第四列的值算出来会很大, 导致Z值会很大,然后看不见.

#2. 电脑屏幕是二维的, 所以算出来的坐标,可能是除以了Z值这个齐次坐标. 算出来的矢量中, 有时, 第四个值可能为0.

#3. 模型的顶点数据不能为负数. 一但有负数就看不见. 可能是像机位置的原因.

#4. createFrustum中的数值, 我的设置是 (Screen_Width, -Screen_Width, Screen_Width, -Screen_Width, -Screen_Width, Screen_Width / 2) 但第一个数值是[左] 应该是负数才对? 难道全反了?

#5. Z值的平移, 会在最终的算后, 在矢量的第四个值体现, 这么说来, 屏幕上的投影,矢量中的Z值与W值都有影响.

#6. glVertexAttribPointer它的第四个参数设置为GL_TRUE 开启归一化, 这一修改曾经解决了看不见东西的问题.

总的来说, 投影矩阵的学习 并不顺利

简单地显示模型

工程文件: VS2017的解决方案

关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看