问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

unity shader里 dot(lightCoord, lightCoord).rr

发布网友 发布时间:2022-04-21 15:26

我来回答

4个回答

热心网友 时间:2023-09-18 11:33

#ifdef USING_DIRECTIONAL_LIGHT
fixed atten = 1.0;
#else
float3 lightCoord = mul(_LightMatrix0, float4(i.worldPos, 1)).xyz;
fixed atten = tex2D(_LightTexture0, dot(lightCoord, lightCoord).rr).UNITY_ATTEN_CHANNEL;
#endif

热心网友 时间:2023-09-18 11:34

dot出来的是一个向量,rr中的每一个r是rgba中的第一个元素,shader中就是所得向量的第一元素了(如果是二维向量的话就只有r和g有值了),rr的话就是相当于v.vertex.xx这样,获得一个由两个第一个元素组成的二维数
举个例子,float3 temp = (1,2,3);
那么temp.xx=(1,1);
temp.xyz=(1,2,3);
temp.xz=(1,3)

热心网友 时间:2023-09-18 11:34

dot()的结果不是一个向量, 是一个数量, float a 和float1 a是基本等价的, 所以float也可以使用swizzle操作符

热心网友 时间:2023-09-18 11:35

float2 uv = float2(dot(lightCoord, lightCoord), dot(lightCoord, lightCoord));
fixed atten = tex2D(_LightTexture0, uv).UNITY_ATTEN_CHANNEL;
懂了吧,rr的意思就是构建一个float2类型的uv坐标,从而对光照衰减纹理进行采样。
另外说一下dot得到的是一个标量,标量,标量。
这里dot的目的是为了得到模的平方(夹角为0时余弦是1),因为计算机处理开平方根的计算量要比处理平方的计算量大。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 惠普预装的OFFICE打不开? unity shader怎么用 惠普笔记本电脑win10预装office2016怎么永久激活 惠普自带office怎么激活 unity有自带的流光shader吗 惠普战66怎么安装office2016 shader forge 自发光怎么提高外发光的亮度 刚买的惠普电脑office无法激活怎么办? 求助,unity里怎么做光晕shader 惠普笔记本电脑的预装office软件如何激活 unity 怎么给shader添加灯光属性 404 Not Found 笔记本预装正版Office2016怎么激活|笔记本自带office2016激活步骤 unity5怎么样让材质自发光 惠普笔记本如何激活office unity3d自发光shader需要材质球吗 惠普笔记本怎么激活office unity3d中shader cg程序的自发光怎么写 惠普电脑的office怎么激活 unity 如何制作外发光字体 惠普电脑如何安装Office 使用unity5,求助,后,出现shader问题 如何激活HP笔记本电脑的Microsoft Word 惠普笔记本电脑如何修复预装Office组件 新买的惠普暗影精灵2怎么激活office 惠普幽灵笔记本的office怎么激活 刚装完系统的笔记本电脑无法启动该怎么办呢? 炒蒜苔的家常做法? 炒蒜苔怎么炒能好吃 炒蒜苔怎么炒好吃 蒜薹怎么炒 炒蒜苔时,用上哪些诀窍才能快速炒熟蒜苔? 如何投诉淘宝店家 清炒蒜苔怎么炒 怎么做炒蒜苔 蒜苔怎么炒? 蒜苔怎么炒好吃 怎么炒蒜薹 炒蒜苔怎样做好吃 如何在淘宝上面投诉店家