Unity 渲染原理(十六)Unity立方体纹理
我们之前用到的纹理,比如法线纹理,渐变纹理,遮罩纹理等,都是一维或者二维的,这次我们来介绍一下立方体纹理,并看一下如何使用立方体纹理实现环境映射。
我们之前用到的纹理,比如法线纹理,渐变纹理,遮罩纹理等,都是一维或者二维的,这次我们来介绍一下立方体纹理,并看一下如何使用立方体纹理实现环境映射。
我们继续看一下Unity光照的最后一部分,衰减
这周在工作的时候,看到了项目中使用了做物理材质,这才反应过来,自己从来没有用过,也不太清楚他和刚体等其他物理组件的关系,所以就重新阅读一下官方文档,进行一定的实践和总结。
只有一个平行光的世界很美好,但是,我们实际上就是需要在Unity Shader中处理更复杂的光源类型以及数目更多的光源。
之前的光照模型中,我们都只有一个光源,而且是平行光。但是实际开发过程中,我们往往需要处理数目更多,类型更为复杂的光源,重要的是,我们需要得到阴影。现在我们就要学习一下如何处理这些更为复杂的光照。
最近在写打包流水线的时候,遇到了几个坑,稍微总结一下。
这个周在引入新的插件进入项目后,本地调试是正常的,但是一大包出来就会丢失一些文件,查了半天,发现是因为该文件没有被直接引用,是通过ScriptableObject.CreateInstance(typeName)
这种形式动态创建的,所以最后打包之后被代码裁剪的过程去掉了。
解决方案也比较简单,在Assets目录下加一个link.xml,然后声明该程序集不可被裁减就好。
但是回过头来,我们还是要看一下,这个代码裁剪的逻辑以及为什么link.xml可以避免代码被裁减。
透明是游戏中经常使用的一种场景,在实时渲染中要实现透明效果,通常会在渲染模型时控制它的透明通道。当开启透明混合后,当一个物体被渲染到屏幕上,每个片元除了颜色值和深度值之外,它还有另一个属性,透明度。当透明度为1时,表示该像素完全不透明,当为0时,表示该像素完全不会显示。
在Unity中,我们通常使用两种方法来实现透明效果:第一种是使用透明度测试(Alpha Test),这种方法其实无法得到真正的半透明效果;另一种是透明度混合(Alpha Blending)。
总的来说,高等数据的核心知识点都在围绕着极限和连续展开,所以熟练掌握求极限的方法很重要。
之所以突然起了这篇文章,是因为这周工作中,使用单例模式实现了一个功能,,在code review的时候,被指出尽量不要使用单例模式,给了我几篇文章看,收获了一些内容,所以系统地总结下。