Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 游戏天堂 > 游戏开发 > Shader编程最容易犯的低级错误
【标  题】:Shader编程最容易犯的低级错误
【关键字】:Shader
【来  源】:http://blog.csdn.net/cywater2000/archive/2007/01/16/1484367.aspx

Shader编程最容易犯的低级错误

Your Ad Here

Shader编程最容易犯的低级错误

作者:cywater2000

日期:2007-1-16

来自:http://blog.csdn.net/cywater2000

 

前段时间本人一直在用shader写程序,看似简单,结果发现经常犯低级错误。由于调试shader比较麻烦,特别是pixel shader(简称ps),所以有时候一个小错误会花掉好几个小时甚至一天的功夫才能找到。于是本人把工作中遇到的问题都总结了下来,希望以后自己不要再犯,同时也希望对别人有所帮助(什么?这些BC级错误你从来没犯过?u kidding… - -!)

 

在这里我用“*”来表示痛苦指数 >_<~~

 

1.忘记计算光照应该在同一坐标系下(view spacetangent space)

**

 

2.忘记矢量要单位化

**

 

3.忘记矢量的w=0(顶点的w=1)

***

 

4.mul的左操作数与右操作数搞错

**

mul(vector, matrix)显然与mul(matrix, vector)是不一样的

 

5.忘记ps的参数都是线性插值传过去的

*

 

6.忘记变量的维度(例如:写成float color,实际上应该是float4 color)

*

 

7.shader传递变量时总是忘记检查返回值

*****

D3D并不会提示有错误发生(比如输出警告信息),所以要养成检查返回值的习惯

比如V( g_pEffect->SetVector(…) );

 

 

8.忘记所有的计算应该在同一个scale下进行

******

这个在GPGPU中经常犯,比如在[-1,1]的尺度下你用[0,100]来计算。目前我遇到过最痛苦的事

 

9.忘记texel/pixel的取值是在cell的中心

***

比如:如果将lookup表变成纹理,则查询的时候应该是tex1D(s0, (index + 0.5) / TextureSize);

 

10. 对于使用已经变换的(transformed)顶点,无法任意设置vs的输出数据

**

即如果顶点格式声明为:D3DFVF_XYZRHW | D3DFVF_TEX1

ps只能得到一组纹理坐标,且维数与声明的一致

你不能写成这样:

void ps_main(float3       coords : TEXCOORD0, //=>维数与声明必须一致

             float2       myvar  : TEXCOORD1, //=>不能任意增加第二个

)

策划,你的工作太简单了吧!:【上一篇】
已知3点,求平面方程,点到面的距离:【下一篇】
【相关文章】
  • Shaderey――非真实渲染
  • ShaderSimpler(1) : 实现基本光照
  • ShaderSimpler(2) : Phong shading
  • ShaderSimpler(1):实现基本光照
  • 【转贴】Shader Model 3 Using Vertex Texture 顶点纹理白皮书中文版
  • Vertex Shader 结构
  • gl ,shader笔记
  • 3D图形学一:模仿草的运动 – GPU(Pixel Shader & Vertex Shader)实现
  • Torque Shader Engine(TSE)游戏引擎的炫目效果和评论(Some message about TSE)
  • 改进粒子系统-动态编译Shader
  • 【随机文章】
  • SWT/JFace开发入门指南
  • FPGA&&CPLD
  • 一次KILL多个进程
  • 在HP-UX下安装磁带库
  • 監控系統的性能
  • 体验Struts(4)---用ajax实现三级下拉列表
  • TinyXml学习笔记
  • x86平台的Debian Linux2.0 安装指
  • gcc HOWTO中译版
  • DataList用法总结
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.