shader基础学习摘要(一)

article/2025/11/10 15:40:52

开篇致谢:
感谢冯乐乐老师的shader入门精要。

// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "Unity Shaders Book/Chapter 5/Simple Shader" {Properties{_Color("Color Tint", Color) = (1, 1, 1, 1)//下方还需再定义,参见cg变量关系表 此属性由RGB还有一位代表透明度构成}SubShader{Pass {CGPROGRAM#pragma vertex vert#pragma fragment fraguniform fixed4 _Color;//变量再定义//包含了顶点着色器需要的模型数据//应用阶段传递到几何阶段的顶点着色器中,即a2vstruct a2v {float4 vertex : POSITION;//告诉unity顶点坐标float3 normal : NORMAL;//告诉unity法线方向float4 texcoord : TEXCOORD0;//告诉unity纹理填充};//使用一个结构体定义顶点着色器的输入struct v2f {float4 pos : SV_POSITION;//定义裁剪空间(必须包含)fixed3 color : COLOR0;//用于存储颜色元素};v2f vert(a2v v) {v2f o;o.pos = UnityObjectToClipPos(v.vertex);//规定裁剪空间o.color = v.normal * 0.5 + fixed3(0.5, 0.5, 0.5);return o;}fixed4 frag(v2f i) : SV_Target {fixed3 c = i.color;//fixedn n个固定大小的缓冲区,存储RGB值,    //用户调整_Color来控制输出效果c *= _Color.rgb;return fixed4(c, 1.0);}ENDCG}}
}

基础渲染shader效果
这个渲染的顺序是先确定模型的顶点,再将顶点着色,
顶点颜色V,法线长度L,基础颜色RGB(0.5,0.5,0.5)
着色方程
V=L/2+RGB
顶点着色器完成,

片元着色器:
首先使用语义SV_POSITION 给定裁剪空间中的顶点坐标
语义COLOR0由用户自定义,定义后便于用户调整材质效果


http://chatgpt.dhexx.cn/article/XbgMIy61.shtml

相关文章

对谈 | “计算机学神”闫令琪:我不希望别人说Rendering已经没东西可解了

我还要继续学习图形学吗? 是继续在学术界钻研,还是进入工业界? 元宇宙的到来,就是图形学的春天了吗? 以上,是我们常在后台收到的问题。于是,2022年8月,GAMES104课程组邀请了王希、…

Unity 之 Scriptable Objects 更直观的序列化

在日常开发中总会在Inspector面板中填写一些序列化信息,如:名称、血量、或者秘钥序列号等(图一)。但看似方便,还是有些缺点的,例如填写的序列化信息不能共享,如果在prefab上对应的脚本丢失&…

Unity Shader入门精要学习笔记 - 第17章 Unity的表面着色器探秘

转自 冯乐乐的《Unity Shader 入门精要》 2010年的Unity 3 中,Surface Shader 出现了。 表面着色器的一个例子。 我们先做如下准备工作。 1)新建一个场景,去掉天空盒子 2)新建一个材质,新建一个Shader&#xff0c…

从图形渲染管线谈游戏性能优化

从图形渲染管线谈性能优化 最近做一个3D场景类项目,其中涉及到各种建筑模型、植物模型、地形等等。画面效果还不错;可是运行起来,那性能啊,没得玩。索性尝试了各种优化手段,这里简单和大家分享一下。当然,在…

《Unity Shader入门精要》笔记01 前言

《Unity Shader入门精要》笔记01 前言 ——本系列是基于人民邮电出版社《Unity Shader入门精要》(冯乐乐著 )的自学Unity Shader笔记,如果您发现了本文的纰漏,还望不吝指正。 写在前边 本书旨在从基础开始,帮助读者逐…

unity学习-shader(一)

渲染流水线 1 CPU流水线2 GPU流水线2.1 顶点着色器2.2 剪裁2.3 屏幕映射2.4 三角形设置2.5 三角形遍历2.6 片元着色器2.7 逐片元操作 应用阶段 需要准备好场景数据,比如摄像机、模型、光源等。需要再这里做粗粒度剔除(culling)工作&#xff0…

Unity Shader入门精要--第4 章 学习Shader 所需的数学基础:矩阵

Unity系列文章目录 文章目录 Unity系列文章目录前言4.4.3 矩阵运算4.4.4 特殊的矩阵2.单位矩阵 参考 前言 不幸的是,没有人能告诉你母体(matrix)究竟是什么。你需要自己去发现它。 —电影《黑客帝国》(英文名&#xf…

【转】《Unity Shader入门精要》冯乐乐著 书中彩图

为方便个人手机学习时候查阅,从网上转来这些彩图。 如属过当行为,联系本人删除。 勘错表 http://candycat1992.github.io/unity_shaders_book/unity_shaders_book_corrigenda.html 转自:http://candycat1992.github.io/unity_shaders_book/unity_shaders_book_image…

【转】《Unity Shader入门精要》冯乐乐 随书彩图

绕了好多圈子终于还是沉下心来好好看这本书了… 以下是原项目GitHub中分享的随书彩图 学习的时候看到色彩丰富的东西会心情更好咯 原项目GitHub链接 前言 第2章 渲染流水线 图2.1 真实生活中的流水线 图2.2 渲染流水线中的三个概念阶段 图2.3 渲染所需的数据&#xff08…

《Unity Shader入门精要》冯乐乐著 书中彩图

为方便个人手机学习时候查阅,从网上转来这些彩图,然后整合所有资料。 如属过当行为,联系本人删除。 勘错表 http://candycat1992.github.io/unity_shaders_book/unity_shaders_book_corrigenda.html 前言 第2章 渲染流水线 图2.1 真实生活中的流水线…

冯乐乐之二 shader的数学

冯乐乐目录 第2章渲染流水线介绍 第三章 Unity shader基础 基础shaderLab语言,shader结构,属性properties,主角SubShader,备胎Fallback。 shader三大类型: Unity宠儿表面着色器,聪明boy顶点片元着色器…

各大浏览器清除缓存(cache)详细步骤

1. Firefox 1.1 选择“Options”: 1.2 选择“Advanced”->“Network”->“Cached Web Content”,点击“Clear Now”: 2. Chrome 2.1 选择“Settings”: 2.2 点击页面底部“Show advanced settings”: 2.3 选择…

浏览器如何清除缓存教程

打开浏览器—设置—隐私设置—清除浏览器数据

清除浏览器的缓存

第一种方法 在浏览器界面按F12之后,再选择Network,选中Disable cache, 然后刷新(这里有个玄学的问题就是即使你已经选中了Disable cache, 也需要打开network这个页面再刷新才有效, 亲测有效, 但是我也不知道为什么) 第二种方法 在浏览器界面直接Ctrl Shift R 比较方便,但…

Edge浏览器如何清除缓存

浏览器在使用过程中会产生大量的缓存,Edge浏览器如何清理缓存?下面是Edge浏览器清理缓存的操作步骤。 1.双击Edge图标打开Edge浏览器。 2.单击右Edge浏览器上角的“更多操作”。 3.弹出菜单,选择“设置”。 4.选择单击“选择要清除的内容”…

清除缓存?(浏览器)

清除缓存 清空浏览器历史记录 **浏览器缓存:**浏览器将用户请求过的静态资源,存储到电脑本地磁盘中,当浏览器再次访问时,就可以直接从本地加载,不需要再去服务端请求了。 好处:减少了服务器的负担&#x…

Chrome清理网页缓存

F12 打开开发者工具(或者直接右键→“检查”),此时右键点击“刷新”按钮: 点击“清空缓存并硬性重新加载即可”。

如何查看Chrome浏览器的页面缓存内容【详细教程】

如何查看浏览器页面缓存内容——代码&控制台 知识调用前言引入控制台输入代码查看在控制台application查看 知识调用 文章可能需要用到的知识🔥🔥🔥浏览器缓存有哪些(通用缓存有哪些) 前言引入 浏览器有多种缓存…

【浏览器】浏览器缓存

一 浏览器缓存机制 浏览器在每次发生请求时,先在在浏览器缓存中查找该请求的结果和缓存标识,并且每次收到请求结果均会把请求结果和缓存标识保存在浏览器缓存中。 总体脑图:文中脑图及流程图资源 浏览器缓存策略分类 缓存策略的分类&…

chrome浏览器清除缓存

场景 :更新页面后可在无痕浏览器中看到更新内容,无法直接打开浏览器看更新内容 方法1:使用无痕浏览器 浏览器右上角-打开新的无痕式窗口 方法2:右键打开控制台 - Application - 找到左侧store - clear site data 方法3&#xff1…