OpenGL3.3-项目难点

引擎项目

显示坐标轴会被其他物体遮挡的问题

当初想了一个是绘制坐标轴的时候不进行深度测试 发现坐标轴很怪
然后就想是将坐标轴z值设置成固定值 发现也不行

控制点问题

如果是贝赛尔曲线就很容易写 比较他本来就是通过控制点形成pitch生成新的点 但是普通的立方体或者三角形就不能这样去生成了 因为每个物体的定点数都是不一样的 并且也不可能通过顶点去生成控制点 所以就指定了八个控制点 也就是xxxx然后我们获取一个模型的包围盒 将每个绘制的顶点和包围盒的一般进行比较 如果是在上半部分就受到上半部分的控制点影响

模型导出的问题

最开始是去找相应的要导出哪个就去找相应的VBO然后自己做矩阵变换 然后再用io输出 做到曲面的时候就蒙了 因为那些新的点都是细分着色器里面生成的嘛 从cpu是获取不到的 后面突然想起来了有tangsform feedback这个东西 然后就发现前面很多事情都白做了 可以直接从这里获取现成的 导出来的都是世界坐标系 导出贝塞尔曲面的顶点就是在几何着色器里面增加了一个输出tfPos 最开始贝塞尔曲面去导出也不知道他的绘制方式是什么 是GL_TRANGS还是GL_TRIANGLES_STRIP 然后就一直自己写了一遍 发现是 STRIP其实后面也想了一下 按细分着色器的生成也不会生成重复的点 就不可能是TRIANGLES 可能一直想做出来 就没想那么多

魔方项目

旋转问题

有两个model矩阵 一个是整个魔方的 一个是魔方中每一个小方块的
这么就是一个旋转的矩阵 我采用的是每一次旋转都使用单位矩阵 这样就不受到以前旋转对坐标轴的影响他就是在单位矩阵上的一个旋转
欧拉角的问题主要是xyz轴乘的顺序
正常是三个矩阵 绕x轴 * 绕y轴 * 绕z轴 * 向量 先转的就会影响后转的 先转就是 z影响y和x y影响x x不影响任何一个轴
那么就会出现你转y轴只影响z轴不影响x轴的情况 那么你先转了y轴90度 就只影响了x轴 z轴没变化 就会导致x轴和z轴重叠 引发万向节死锁问题

然后他的旋转顺序是先移动回原点一个矩阵 再用一个矩阵先进行旋转 再移动 这样就是要旋转到的位置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值