| 2.2.1 |
P8 |
第1段第1行 |
往往比图1.3 |
往往比图2.3 |
| 2.3.9 |
P17 |
第6段第4行 |
似避免无谓的计算 |
以避免无谓的计算 |
| 2.4.2 |
P19 |
倒数第2行 |
如Windows、Xbox 360、PS3等 |
PS3不是微软产品,使用的shader语言是Cg,应该把PS3去掉 |
| 3.3.3 |
P31 |
第8段第2行 |
SubShader我希望怎样以及何时 |
去掉SubShader |
| 3.7 |
P38 |
最后一行 |
NVIDIA的系列教程网址有误,原文为xxxxxx/CgTutorial/cG_tutorial_xxxxxx |
应更正为xxxxxx/CgTutorial/cg_tutorial_xxxxxx |
| 4 |
P39 |
第3段第1行 |
“而不是填压式地阅读” |
不是“填压”,是“填鸭” |
| 4.3.2 |
P49 |
中间公式 |
|
|
| 4.3.2 |
P52 |
最上面公式 |
结果错误: |
|
| 4.3.3 |
P53 |
练习题2(1) |
|
|
| 4.3.3 |
P53 |
练习题标号 |
排版样式错误 |
二级标号应该是(1)、(2)等 |
| 4.3.3 |
P54 |
练习题5(2) |
公式错误 |
应该是 |
| 4.4.5 |
P60 |
最下面矩阵的第二行 |
|
|
| 4.4.6 |
P61 |
练习题1(2) |
第二个矩阵应该有4行 |
|
| 4.5.1 |
P62 |
最下面 |
它满足标量乘法,但不满足矢量加法 |
它既不满足标量乘法,也不满足矢量加法 |
| 4.5.7 |
P66 |
4.5.7节第2段 |
原文为:不同的变换顺序得到的结果可能是一样的 |
应改为:原文为:不同的变换顺序得到的结果可能是不一样的 |
| 4.5.7 |
P66 |
公式下标,共2处 |
|
|
| 4.5.7 |
P67 |
公式下标,共4处 |
,,, |
,,, |
| 4.5.7 |
P67 |
中间公式 |
矩阵元素缺少旋转角度下标,如 |
应该添加旋转角度下标,如 |
| 4.6.2 |
P70 |
中间公式 |
公式的第一行的第一个矩阵的最后一行第一列元素错误,不是C0 |
该元素值0,多了一个字母C |
| 4.6.2 |
P70 |
中间公式 |
公式的第二行的第一个矩阵的第三行第三列元素错误,不是0 |
该元素值应该是1 |
| 4.6.5 |
P74 |
所有公式 |
公式下标有错,, |
, |
| 4.6.6 |
P76 |
公式 |
公式下标有错,,,, |
,,, |
| 4.6.6 |
P76 |
中间公式 |
|
|
| 4.6.7 |
P79 |
下面公式 |
公式下标有错, |
|
| 4.6.7 |
P79 |
下面公式 |
矩阵第三行第三列缺少负号, |
|
| 4.6.7 |
P81 |
公式 |
公式下标有错,, |
, |
| 4.6.7 |
P81 |
中间公式 |
矩阵第三行第三列分子不是0, |
|
| 4.11 |
P95 |
4.3.3小节的5(2)答案 |
|
|
| 5.2.2 |
P104 |
中间第1段 |
对于顶点着色器的输出 |
对于顶点着色器的输入 |
| 5.2.2 |
P104 |
第4段 |
把它设置为我们新定义的结构体a2f |
不是a2f,是a2v |
| 5.2.3 |
P105 |
代码片段 |
v2f vert(a2v v) : SV_POSITION |
去掉函数后面的: SV_POSITION |
| 5.2.3 |
P106 |
代码片段 |
v2f vert(a2v v) : SV_POSITION |
去掉函数后面的: SV_POSITION |
| 5.3.1 |
P108 |
表5.4倒数第二行 |
float3 UnityObjectToWorldDir(in float3 dir) |
去掉函数描述的in |
| 5.4.1 |
P109 |
中下部分 |
有三处a2f |
不是a2f,是a2v |
| 5.5 |
P111 |
第5段 |
来找到问题所处 |
来找到问题所在 |
| 5.5.1 |
P112 |
代码段 |
可视化切线方向的v.tangent后应该指明是xyz分量 |
该行代码应该是:o.color = fixed4(v.tangent.xyz * 0.5 + fixed3(0.5, 0.5, 0.5), 1.0); |
| 5.6.1 |
P115 |
第4段 |
(Meta l也是) |
(Metal也是) |
| 5.6.1 |
P115 |
第6段 |
如果不采取行任何错误的话 |
去掉行 |
| 5.7.3 |
P118 |
表5.9 |
Unity 5.3之后对Shader Target进行了调整,该表列出的是5.2版本及以前的Shader Target |
添加版本说明 |
| 6.1.4 |
P123 |
该小节第2句话 |
我们就需要知道一个表面是和光照进行交互的 |
我们就需要知道一个表面是如何和光照进行交互的 |
| 6.2 |
P123 |
自发光描述 |
“本书使用来表示”中的下标单词错误 |
应该是 |
| 7 |
P139 |
第8行 |
例如可以是256x256或者1028x1028 |
例如可以是256x256或者1024x1024 |
| 7.1.2 |
P144 |
第2段 |
纹理缩放更加复杂的原因 |
纹理缩小更加复杂的原因 |
| 8.1 |
P163 |
第4段 |
开启了深度测试和深度检验 |
开启了深度测试和深度写入 |
| 8.6.1 |
P174 |
表8.4 |
第5行对DstColor的描述,“因子为源颜色值” |
因子为目标颜色值 |
| 8.6.1 |
P174 |
表8.5 |
目的颜色 |
所有“目的颜色”改为“目标颜色” |
| 9.1.1 |
P184 |
表9.2 |
前两行重复了,都是描述_LightColor0 |
去掉一行 |
| 9.2.2 |
P191 |
第1段第1行 |
我们编号的代码使用了…… |
去掉“编号” |
| 9.2.2 |
P191 |
下面步骤(3)中的第6行 |
我们可以使用__WorldSpaceLightPos0来得到…… |
WorldSpaceLightPos0前多打了一个下划线,应该是_WorldSpaceLightPos0前多打了一个下划线 |
| 9.4.2 |
P199 |
第1段第5行 |
但是Chapter9- ForwardRendering中并没有这样一个Pass啊 |
Chapter9- ForwardRendering中间不应该有空格,应该是Chapter9-ForwardRendering |
| 10.1 |
P210 |
第4段第6行 |
详见第19章 |
详见第18章 |
| 11.2.1 |
P232 |
中间的片元着色器代码 |
frag的第三行“float column = time - row * _VerticalAmount”错误 |
应该是“float column = time - row * _HorizontalAmount”,可参见代码下方的解释,列数等于除法结果的余数部分,因此应该乘以第二行中除法的除数_HorizontalAmount |
| 11.3.2 |
P239 |
最上面的代码 |
float3 localPos = center + rightDir * centerOffs.x + upDir * centerOffs.y + normalDir.z * centerOffs.z; |
normalDir多打了“.z”,应该是float3 localPos = center + rightDir * centerOffs.x + upDir * centerOffs.y + normalDir * centerOffs.z; |
| 13.1.2 |
P270 |
公式 |
公式中的都错误打成了 |
应该是 |
| 13.1.2 |
P270 |
倒数第2段第3行 |
我们上面得到的 |
下标错误,应该是 |
| 13.5 |
P287 |
最后一段第2行 |
(计算图形学的顶级会议) |
少了“机”,应该是计算机图形学会议 |
| 16.4 |
P314 |
最后一段倒数第3行 |
就是在每次面对draw call时尽可能…… |
不是“面对”,应该是“调用” |
| 16.4.4 |
P318 |
倒数第5行 |
我们有一些小小的建设 |
不是“建设”,应该是“建议” |
| 16.5.2 |
P320 |
第2段第2行 |
准备多个包含不同细节程序的模型 |
不是“程序”,应该是“程度” |
| 16.6.2 |
P321 |
第6段第1行 |
虽然透明度测试没有关闭深度测试 |
不是“深度测试”,而是“深度写入” |
| 18.1.1 |
P344 |
第1段 |
(实际反射面可看到蓝线) |
(如蓝线所示) |
| 18.1.1 |
P344 |
第2段 |
如面果像素要大于 |
去掉面 |
| 18.4.3 |
P361 |
最后一段 |
让亮的物体可以真地非常亮、让暗的物体可以真地非常暗 |
让亮的物体可以真的非常亮、让暗的物体可以真的非常暗 |