![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
unity3d内建着色器源码解析
文章平均质量分 89
劈日X斩月jayce
Shader这玩意就是这么玩的。
展开
-
unity3d内建着色器源码解析(四)
Unity3D引擎的多例化技术多例化技术概述假如需要绘制有很多模型的场景,而大部分模型都是使用的同一个模型,即他们使用同一组顶点数据,在渲染时指定不同的世界坐标,绘制在不同的位置上。例如成千上万的小草,每颗小草都需要调用一次drawcall,此时性能瓶颈在CPU往GPU发送数据次数过多,因为这些操作都是在相对缓慢的CPU到GPU总线上进行的。如果能够一次性将数据发送到GPU,然后使用一个绘制函数让渲染流水线利用这些数据绘制多个相同的物体将大大提升性能,这种技术就是GPU多例化(GPU insta原创 2021-01-27 13:06:02 · 369 阅读 · 0 评论 -
unity3d内建着色器源码解析(三)
UnityCG.cginc文件中的工具函数和宏(下)4.2.8 法线贴图及其编解码操作的函数法线贴图(normal map)中存储的信息是对模型顶点法线的扰动方向向量。利用此扰动方向,在光照计算时对顶点原有的法线进行扰动,从而使法线方向排列有序的平滑表面产生法线方向杂乱无序,表面凹凸不平的效果。因为法线贴图有如此特性,所以在实际使用中需使用"低面数模型+法线贴图"的方式实现高面数模型才能达到的精细程度。在Unity3d中导入和使用法线贴图,需要单击该贴图,在Inspector面板中Texture T原创 2021-01-25 00:10:07 · 892 阅读 · 0 评论 -
unity3d内建着色器源码解析(二)
UnityCG.cginc文件中的工具函数和宏(上)4.2.1 数学常数//源文件3~13行#ifndef UNITY_CG_INCLUDED#define UNITY_CG_INCLUDED#define UNITY_PI 3.14159265359f#define UNITY_TWO_PI 6.28318530718f#define UNITY_FOUR_PI 12.56637061436f#define UNITY_INV_PI原创 2021-01-23 17:39:06 · 498 阅读 · 0 评论 -
unity3d内建着色器源码解析(一)
UnityShaderVariables.cginc文件中的着色器常量和函数UnityShaderVariables.cginc文件中包含大量的工具宏和函数,如变换操作用的矩阵、与摄像机相关的函数、与光照和阴影相关的函数等。下面依次分析这些工具函数和宏。1. 进行变换操作用的矩阵1.1 判断USING_DIRECTIONAL_LIGHT宏是否定义并分析与立体渲染相关的宏#ifndef UNITY_SHADER_VARIABLES_INCLUDED#define UNITY_SHADER_V.原创 2021-01-11 23:36:37 · 2024 阅读 · 0 评论