今天遇到的问题

      以前一直都是用rendermonkey写shader,今天用了一下API,才发现问题一堆一堆的,看来自己基础还是没有打牢,典型的“没学会爬就在学飞了”,遇到的问题大多是疏忽的问题,绝不是逻辑上的问题。
  在用RenderMonkey 写 HDR的时候遇到问题了,做的star effect老是不对,看起来没有模糊感,它的例子居然连一个Tex2D(sampler, texCoord),直接采样看起来都想做了高斯模糊的样,我实在找不出原因了,想用API试试。

  1.D3DXFVF_XYZW。我以前以为是转换到齐次裁剪空间,今天才发现原来是屏幕空间,说实话,以前还没做过post-effect,我就说SDK的例子我看着始终感觉到不对。

      2.单独的像素着色器,以前以为必须包括顶点 着色器 ,今天才知道可以不用顶点作色器而单独用像素 着色器

      3.所谓的D3DFVF_TEX0, 原来这个是指不存在纹理坐标,那么为什么它会存在呢,For when you don't require your polygons to be textured. Which can be the case for various effects etc. For when you're drawing lines which you don't need to be textured. For when you're drawing points which don't make sense textured. etc.(老外的解释)

      4.所谓的TEXCOORD寄存器,既然没有顶点Shader,那么像素Shader中的in float2 texCoord : TEXCOORD0自然就令我疑惑不解了,晚上突然想到了,固定管线将纹理坐标传递到了TEXCOORD寄存器中,TEXCOORD会被自动地传递到Pixel Shader,不过好像又不对,这里明天再看看。 试验过了,上述方法是可行的,不过貌似XYZRHW中的RHW值必须设定,也就是说顶点必须有4个值,包括w值,而如果是XYZRHW则不再使用顶点着色器了,RenderMonkey里面的我想使用的一个坐标值为(-1,1)的模型,然后直接贴到其次裁剪空间,所以有了顶点着色器,顶点着色器在RenderMonkey中是必须的。

     5.StretchRect()函数,有时候我们要将场景再次渲染到一张单独的纹理中是非常费时的,这时候StretchRect()函数就派上用场了,他可以直接将一个DIRECT3DSURFACE9的内容拷贝到另一个DIRECT3DSURFACE9中。

     6.值的初始化,定义个数组存储顶点,因为测试用的纹理坐标就没填值,结果死活渲染不出来,郁闷了很久,最后才检查出来应该是纹理坐标值因为值没有被初始化,加了个memset()函数,出来了。晕。

转载于:https://www.cnblogs.com/ttthink/archive/2009/09/21/1571439.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值