Comments (5)
P236页有讲锚点的作用,它用来确定多边形在空间中的位置,你可以把它改成其他值看看有什么不同就明白啦
from unity_shaders_book.
我理解的锚点就是,比如说向日葵绕着太阳转,这里的锚点相当于向日葵的根。
因为先前都没注意过shader,也不知Shader里哪些是广告牌哪些不是,不清楚广告牌效果里都是选模型原点为锚点的吗?
在236页里面举的草丛和粒子效果例子我也只是一知半解,草丛我可以想象摄像机镜头里有一团草丛,我水平方向绕着草丛移动镜头的时候,草丛就是一直对着我。但这个粒子效果是……?是什么样子的粒子效果?为什么向上方向要发生变化?这个粒子效果难道是浓烟吗?
from unity_shaders_book.
先说锚点的问题。的确并不一定是(0,0,0)点。我拿下面的图例说明一下。
我们先看左边的部分。这种情况最简单,也就是书里的情况:只有一个四边形,而且它的模型中心恰好就是旋转中心,那我们的锚点就可以是(0,0,0)点。但如果这个四边形的模型中心不在红点所示的位置,那么明显广告版绕着旋转的点就不是我们希望的。我在P239页提到,这种方法不能利用批处理,因为一旦批处理了就会造成合并网格,那么多个四边形就会合并成一个整体网格里,这个网格的中心就肯定不是每个四边形应有的旋转中心(锚点)了。这就是上面右图的情况。此时每个四边形正确的锚点如红点所示,但模型原点确是绿点。
那么这种问题怎么解决呢?P239页也提到了,真实项目里的是利用顶点色来存储每个顶点到锚点的距离的。也就是说,锚点的计算是靠锚点 = 顶点位置 + 该顶点到锚点的偏移值来决定的,这样一来即便批处理过后顶点位置都发生了变化,但偏移值已经存储在了顶点色中,我们总是可以靠上面的公式计算得到正确的锚点位置。具体细节你可以参考下面两篇文章:
【Unity Shaders】ShadowGun系列之二——雾和体积光以及UnityShader实例10:广告牌(Billboard)材质
最后,粒子特效也是靠很多四边形渲染出来的呀,它们一定要始终面向摄像机猜可以呀~
from unity_shaders_book.
感谢这详细的解答,我理解了。
我看了给的两个链接,觉得还是第一个链接“雾和体积光”讲的容易理解些,讲的比书上这段”草丛“的举例好些,草丛的例子我还是和237页的彩图一起想想,才明白这个草丛到底是怎么观看的。第二个链接之前有看过,感觉最有用的是里面的GIF水箱图,但博主的解释是真的一头雾水。
237页的彩图真好,是广告牌这段里最直观最好理解的了。
from unity_shaders_book.
草丛还是很常见的例子,你大概想的是那种复杂的草丛模型……Anyway自己琢磨的越多才会进步,加油
from unity_shaders_book.
Related Issues (20)
- 随书附赠的代码勘误-Chapter9 Unity阴影-Shadow.shader HOT 2
- Github提供的第四章勘误中 4.6.7 的不等式沒有修改
- 散射是否改变光线颜色的问题 HOT 2
- 一直clone失败 有小伙伴遇到一样问题吗 HOT 4
- P43 第四段是不是应该为图4.9(图3.9)
- 第8章 8.7 双面渲染的透明效果 p176 p177 背面法线方向问题
- 12.4 高斯模糊里的纹理采样按照for循环来进行采样好像会有一个纹理坐标用不上 HOT 2
- P146页的问题
- 第二章 2.3.3 裁剪 内容和后面有点矛盾 HOT 2
- Unity2020.3在立方体纹理实现的反射效果 中处理光照衰减之后有奇怪的阴影 HOT 2
- P232这里的uv坐标直接用减法会为负吗? HOT 2
- P92,投影空间问题 HOT 2
- 7.2.2.1在切线空间下计算从模型到切线空间的变换矩阵 HOT 1
- 10.1.15 菲涅尔反射文章《Everything has Fresnel》,链接失效.
- 第十一章中 Billboard 的 Shader 代码是不对的 HOT 5
- 刚打开项目的时候物体偏暗,添加一个物体后就正常了这是为啥?
- 关于12.6节动态模糊,accumulateTexture变量的问题 HOT 2
- 这块应该是减小吧 HOT 2
- 第七章关于法线贴图反映射的计算
- P56 第四章pdf中练习题第三题 应为“是多少” HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from unity_shaders_book.