图形学/shader
图形学相关以及shader编写相关
Dawn·张
菜的一笔
展开
-
图像和像素(Images and Pixels)
上一节介绍了根据任意计算设置像素值的示例。我们现在将看看如何根据现有PImage对象中的像素设置像素。这是一些伪代码。将图像文件加载到 PImage 对象中对于 PImage 中的每个像素,检索像素的颜色并将显示像素设置为该颜色。PImage类包括一些有用的字段,用于存储与图像相关的数据——宽度、高度和像素。就像我们的用户定义的类一样,我们可以通过点语法访问这些字段。访问这些字段使我们能够遍历图像的所有像素并将它们显示在屏幕上。示例:显示图像的像素y ++) {翻译 2022-11-15 10:36:55 · 1269 阅读 · 0 评论 -
addshadow和fullforwardshadows
转存失败重新上传取消解决的方法是打包的主场景牵扯到的子场景放到同一个文件夹下转存失败重新上传取消转存失败重新上传取消如果移动了场景,会出现一个同名的壳(node),如果还改名了即使在一个文件夹下也会导致这个问题,解决办法是移动完之后右键Content点击fix up···转存失败重新上传取消.........原创 2022-06-19 10:53:06 · 158 阅读 · 0 评论 -
addshadow和fullforwardshadows
阴影和曲面细分 - 可以提供其他指令来控制阴影和曲面细分的处理方式。addshadow - 生成阴影投射物通道。常用于自定义的顶点修改,以便阴影投射也可以获得程序化顶点动画。通常情况下,着色器不需要任何特殊的阴影处理,因为它们可以通过回退机制来使用阴影投射物通道。fullforwardshadows - 支持正向渲染路径中的所有光影类型。 默认情况下,着色器仅支持前向渲染中来自一个定向光的阴影(以节省内部着色器变体数量)。 如果您在前向渲染中需要点或聚光灯阴影,请使用此指令。...原创 2022-06-12 19:38:40 · 391 阅读 · 1 评论 -
unity gamma(伽马) linear(线性) 互转代码及问题处理
inline float GammaToLinearSpaceExact (float value){ if (value <= 0.04045F) return value / 12.92F; else if (value < 1.0F) return pow((value + 0.055F)/1.055F, 2.4F); else return pow(value, 2.原创 2021-11-04 16:17:44 · 4699 阅读 · 3 评论 -
在untiy中如何编写自定义的cginc
这里是创建的部分unity 自定义shader cginc 函数工具库并引用_我们做点事情吧-CSDN博客注意事项:.cginc文件的语法和shaderlab的语法是一致的,也就是说在unity中.shader文件中用的方法核函数在.cginc中一样举个例子:// params uniform float4 _TransitionCellSize;uniform float4 _ScreenAndImageSize;uniform float _TransitionRan.原创 2021-10-26 15:05:52 · 1181 阅读 · 0 评论 -
shader公式/函数总结
点到圆心的距离Mathf.Sqrt(p.x * p.x + p.y * p.y);极坐标的角度float a = (Mathf.Atan2(p.y, p.x) + Mathf.PI) / (Mathf.PI * 2);笛卡尔坐标系转极坐标float r = Mathf.Sqrt(p.x * p.x + p.y * p.y);float a = (Mathf.Atan2(p.y, p.x) + Mathf.PI) / (Mathf.PI * 2);return new Vecto原创 2021-10-26 13:54:01 · 378 阅读 · 0 评论 -
unity shader tags设置
对于shaderlab中的tags官方给出的解释是:Subshader使用tag来告诉他们期望如何以及何时将其渲染到渲染引擎。其中有Queue(渲染队列)确定绘制对象的顺序Background-此渲染队列先于其他任何队列渲染。您通常会将它用于确实需要在后台进行的操作。 Geometry(默认)-用于大多数对象。不透明几何使用此队列。 AlphaTest-经过Alpha测试的...原创 2020-03-01 20:26:47 · 1479 阅读 · 0 评论 -
unity shaderlab中lod的作用
内容说明 ShaderLOD的说明。(不是模型的LOD)1.着色器的LOD(Level ofdetail)是用在整个shader或者SubShader中。当LOD的值小于设定值时,相应的shader不会工作。 默认情况下,允许的 LOD 级别可以是无限的。也就是说,可以使用硬件所支持的所有的着色器。然而,在某些情况下即使硬件可以支持它们,你可能也要放弃着色...转载 2020-02-25 00:12:07 · 3607 阅读 · 0 评论 -
unity shader数学基础3——矩阵的变换
矩阵变换的种类旋转 缩放 平移 镜像 切换 投影(平行投影) 投影(透视投影) 可逆 等角 正交 刚体2D旋转矩阵 public void Rotate(int degrees) { float angle = (float)(degrees / 360.0f * Math.P...原创 2019-08-07 21:17:16 · 340 阅读 · 0 评论 -
unity shader数学基础2——矩阵
矩阵的转置 矩阵的转置其实就是将矩阵的行元素转换成列元素,当一个矩阵转置再转置就会恢复到一开始的样子矩阵和标量的乘法矩阵和矩阵的乘法矩阵和矩阵的乘法是拿第一个矩阵的行乘以第二个向量的列并相加得来的,需要注意的是,两个向量调换位置并且转置相乘之后得出的结果就是原来的结果的转置当遇到两个矩阵的维度不相同时要遵循这样的原则:一个矩阵是x*y阶另一个...原创 2019-08-06 08:48:39 · 298 阅读 · 0 评论 -
unity shader数学基础1——向量,齐次坐标系
向量加法v1=(1,0);v2=(0.5,0.5);v3=v1+v2=(1,0)+(0.5,0.5)=(1.5,0.5)向量减法v1=(1,0);v2=(0.5,0.5);v3=v1-v2=(1,0)-(0.5,0.5)=(0.5,-0.5);向量乘法向量和标量相乘v1=(1,0.5,0);v=3;v2=v1*v=2*(1,0.5,0)=(2,1.5...原创 2019-08-05 22:03:59 · 802 阅读 · 0 评论 -
Unity ShaderLab学习
Unity ShaderLab学习总结Why Bothers?为什么已经有ShaderForge这种可视化Shader编辑器、为什么Asset Store已经有那么多炫酷的Shader组件可下载,还是有必要学些Shader的编写?2014-0718-1607-11-33.png因为上面这些Shader工具/组件最终都是以Shader文件的形式而存在。需要开发人员/技术美术有能力对Shader进行功...转载 2018-02-05 17:03:49 · 3977 阅读 · 3 评论