上一页 1 2 3 4 5 6 7 8 9 ··· 47 下一页
摘要: 什么是SRP? 可编程渲染管线 (Scriptable Render Pipeline) 是 Unity 内置渲染管线的替代方案。 使用 SRP 可以通过 C# 脚本控制和定制渲染流程 URP和SRP的区别? URP是基于SRP实现的一套渲染管线(由Unity官方实现,并以模板项目的方式提供给开发者 阅读全文
posted @ 2025-01-16 21:59 yanghui01 阅读(165) 评论(0) 推荐(0)
摘要: # URP_Shadow.shader Shader "My/URP_Shadow" { Properties { _BaseMap("Texture", 2D) = "white" {} //主贴图 _BaseColor("Tint Color", Color) = (1, 1, 1, 1) // 阅读全文
posted @ 2025-01-07 23:13 yanghui01 阅读(268) 评论(0) 推荐(0)
摘要: 要点 这边只涉及光源的漫反射和高光。 漫反射(Diffuse)使用了Lambert方法来计算,高光(Specular)使用了Blin-Phone方法来计算,参考:Shader入门精要笔记 - CH6_最简单的逐像素Blinn-Phong光照 公式中的相关变量的获取: 1) 顶点法线方向 Vertex 阅读全文
posted @ 2025-01-07 23:06 yanghui01 阅读(80) 评论(0) 推荐(0)
摘要: 什么地方用到? CommandBuffer的SetRenderTarget(renderTargetId, loadAction, storeAction)函数 RenderBufferLoadAction 用个例子说明:有两个RenderTexture A和B,在A上绘制一个红色三角形 -> 在B 阅读全文
posted @ 2024-12-24 22:41 yanghui01 阅读(104) 评论(0) 推荐(0)
摘要: 什么是纹素? 就是纹理图上的像素叫纹素,主要是为了和普通的像素做区分,因为纹素的rgba通道存放的不一定是颜色值,可以用作其他用途。 _MainTex_TexelSize 表示(1/width, 1/height, width, height) 参考 Unity Shader 入门到改行4——最简纹 阅读全文
posted @ 2024-12-24 22:35 yanghui01 阅读(83) 评论(0) 推荐(0)
摘要: Shader "My/URP_Unlit" { Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader { Tags { "RenderPipeline" = "UniversalPipeline" //这是用于URP的shade 阅读全文
posted @ 2024-12-19 23:17 yanghui01 阅读(135) 评论(0) 推荐(0)
摘要: SRP Batcher a) 优化原理 通过ConstantBuffer将对象的基本信息存储在GPU上,减少CPU和GPU频繁的数据交互带来的性能损失。 b) 限制 需要使用可编程渲染管线,不支持内置渲染管线。 需要shader兼容。 c) 写法参考 Shader "Xxxx" { Properti 阅读全文
posted @ 2024-12-19 23:11 yanghui01 阅读(112) 评论(0) 推荐(0)
摘要: 语义是用来做什么的? 用来告诉Unity这个变量是干嘛用的,Unity给Shader传数据时,比如遇到half4 c这样一个变量,那该给这个变量传哪个数据呢?顶点坐标,颜色还是法线方向? 在不说明的情况下是无法确定的,如果写成类似:half4 c: 顶点坐标; 这种形式,就很明确了。 程序输入会涉及 阅读全文
posted @ 2024-12-15 21:46 yanghui01 阅读(61) 评论(0) 推荐(0)
摘要: 比如: long l1 = 4294967297; //二进制为1 00000000 00000000 00000000 00000001 float f1 = l1; var str1 = ToBinString(BitConverter.GetBytes(f1)); long l2 = (lon 阅读全文
posted @ 2024-12-10 23:19 yanghui01 阅读(33) 评论(0) 推荐(0)
摘要: 6位是绝对有效数字。第7位有时候准确,有时候不准确。 例1 float f1 = 1234560.991f; Console.WriteLine($"{f1}"); 执行上面的代码,会输出1234561,这个例子中就是第7位数字不准。 按float转二进制步骤分析下: 1) 整数部分的二进制为: 1 阅读全文
posted @ 2024-12-10 23:17 yanghui01 阅读(402) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 ··· 47 下一页