水面渲染

本文记录了作者使用顶点纹理实现水面渲染的过程。经过三天的努力,最终实现了初步的水面动画效果,即使在没有进行优化的情况下,也能在6600GT上达到约70帧的流畅度。文中还总结了一些常见错误,帮助读者避免类似的坑。
摘要由CSDN通过智能技术生成

      看了那么多文章,终于动手自己写水面渲染的程序了。选择了使用顶点纹理来实现(FFT。。。看了2遍信号与系统,还是没有明白怎么变换求解-_-#)。弄了3天,总算把水面的初步动画实现了,画面效果还没进行优化,纹理也没贴,不过效果还不错,CPU占用率出乎意料的低,网格大小为256x256,并且没有任何裁减的情况下,6600GT可以跑到70帧左右。本来打算用MDX2.0的,结果写了一点点,就出了一大堆问题,没有文档实在是麻烦的事情,还是回到了1.0。对顶点纹理进行采样的sampler参数设置差点让我崩溃了,查了无数资料,都没有关于如何在MDX里进行设置的例子。最后,模仿nVIDIA SDK里一个C++程序的例子写了一个,居然成功了~~。VS2003里不能调试shader实在是痛苦啊,但是拼写错误就害死人啊T_T。

记下一些容易犯的低级错误 ,以免再错-_-:
1.  顶点索引的顺序是很重要的, 切记需要按顺时针顺序来定义;
2.  矩阵相乘的顺序是有讲究的;
3.  拜托,写demo的时候先画个草图,设计好物体,观察点的位置,不要弄了半天发现物体根本不在视线内~_~;
4.  顶点纹理一定要是32bit的float point格式,否则就算程序可以运行,也不会有结果 +_+;
5.  注意tex2Dlod这个函数接收的纹理坐标参数为float4,而不是普通的float2  =.=;
6.  顶点纹理sampler的参数和pixar shader是不一样的,需要用特殊的标识符 @_@;
7. 拼写~~!!一定要注意拼写的正确性啊~~ 0_0;

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值