当前位置: 首页 > wzjs >正文

销售网站的优秀标准漕泾网站建设

销售网站的优秀标准,漕泾网站建设,打开网站弹出广告js,建筑工程网上申报根据Unity Shader编程的光照模型实现,光线通常可分为以下核心组成部分: 一、基础光照分量 环境光(Ambient) 全局基础照明,不依赖具体光源 实现方式:UNITY_LIGHTMODEL_AMBIENT内置变量 漫反射光&#xff0…

根据Unity Shader编程的光照模型实现,光线通常可分为以下核心组成部分:

一、基础光照分量

环境光(Ambient)

全局基础照明,不依赖具体光源
实现方式:UNITY_LIGHTMODEL_AMBIENT内置变量

漫反射光(Diffuse)

兰伯特模型(Lambertian)模型:diffuse = max(0, dot(N, L))
半兰伯特模型(Half-Lambert)模型 diffuse=dot(N,L)a+b,ab可调,通常ab都为0.5
示例代码: float3 diffuse =
漫反射光强 = S_diff * m_diff * max(dot(n, l), 0)
S_diff:光源漫反射颜色(含强度)3
m_diff:材质漫反射系数(0-1,决定表面颜色)
n:表面单位法线向量
l:指向光源的单位方向向量
max():确保背光面光强不低于04
可以增加漫反射系数
漫反射光强 = S_diff * m_diff * o_diff
max(dot(n, l), 0)
o_diff:物体漫反射系数

镜面反射光(Specular)

高光反射,主要是利用,摄像机和反射角的夹角来判断,但夹角越小,说明名高光反射越强,所以利用点乘来计算,假设一下,你看着镜子,反射光直照射你的眼睛,是不是代表着反射强度越大,所以第一种phone模型一种是先求出光线反射角,然后计算光线反射角与摄像机视角的点积,但可能因夹角超过 90° 导致高光断层

phone高光模型

在这里插入图片描述

Blinn-Phong高光模型:

Blinn-Phong 模型是对 Phong 模型的优化改进,通过引入半角向量(Halfway Vector)简化计算并改善高光效果26。其光照由三部分构成:

因为R点乘v要求出反射光线R向量,虽然不是不可以,但是比较麻烦,计算量大。所以Blinn提出来了一个天才般的想法:
不去计算R与v的夹角余弦,而是去计算v和入射方向I的角平分线 与 表面法线的夹角余弦。于是就定义了这个角平分线为h。
如何衡量两个向量接近?——使用点乘
两个向量越近,点乘结果越接近1,两个向量越远,点乘结果越接近0
在这里插入图片描述
在这里插入图片描述

自发光(Emissive)

独立于外部光源的自主发光
实现方式:直接赋值颜色值
自发光原理就是颜色叠加

Shader "Custom/VertexEmission" {Properties {_MainTex ("Base Texture", 2D) = "white" {}_EmissionMap ("Emission Map", 2D) = "white" {}_EmissionColor ("Emission Color", Color) = (1,1,1,1)_EmissionIntensity ("Emission Intensity", Range(0, 5)) = 1.0 }SubShader {Pass {Tags { "RenderType"="Opaque" }LOD 200 CGPROGRAM#include "UnityCG.cginc" #pragma vertex vert #pragma fragment frag #pragma multi_compile_fwdbase struct appdata {float4 vertex : POSITION;float3 normal : NORMAL;float2 uv : TEXCOORD0;};struct v2f {float4 pos : SV_POSITION;float2 uv : TEXCOORD0;float3 worldNormal : TEXCOORD1;};sampler2D _MainTex;sampler2D _EmissionMap;fixed4 _EmissionColor;float _EmissionIntensity;v2f vert (appdata v) {v2f o;o.pos  = UnityObjectToClipPos(v.vertex);   // 模型空间→裁剪空间转换[1]()o.uv  = v.uv; o.worldNormal  = UnityObjectToWorldNormal(v.normal);   // 法线空间转换[2]()return o;}fixed4 frag (v2f i) : SV_Target {fixed4 baseColor = tex2D(_MainTex, i.uv); fixed4 emission = tex2D(_EmissionMap, i.uv)  * _EmissionColor*_EmissionIntensity;// 叠加自发光效果 return baseColor +emission;}ENDCG }
}FallBack "Diffuse"
}

二、扩展光照类型

1.法线贴图增强光
通过Tangent Space Normal Map修改表面细节光照
关键函数:UnpackNormal(tex2D(_BumpMap,uv))
根据法线来调整物体各个像素的颜色,那么就获取法线的值,然后进行物体颜色的叠加就可以获取到了

Shader "Custom/VertexFragmentExample"
{Properties {_MainTex ("主纹理", 2D) = "white" {}  // 材质面板可见的纹理属性 _Color ("颜色系数", Color) = (1,1,1,1) // 颜色调节参数 _BumpColor ("法线自发光颜色系数", Float) = 1 // 颜色调节参数 }SubShader {Pass {CGPROGRAM #pragma vertex vert   // 声明顶点着色器函数 #pragma fragment frag // 声明片元着色器函数 #include "UnityCG.cginc"  // 包含Unity内置函数 // 输入结构体:从Mesh数据自动获取[1]()struct appdata {float4 vertex : POSITION;   // 顶点位置(模型空间)float3 normal : NORMAL;     // 顶点法线(模型空间)float2 uv : TEXCOORD0;      // 第一套UV坐标 };// 输出结构体:顶点着色器->片元着色器的数据传递[2]()struct v2f {float4 pos : SV_POSITION;   // 必须包含的裁剪空间位置 float3 worldNormal : TEXCOORD1; // 自定义数据通道1存储世界法线 float2 uv : TEXCOORD0;      // 传递UV坐标 };sampler2D _MainTex;     // 声明纹理采样器float4 _MainTex_ST;     // 纹理的缩放偏移参数 float4 _Color;          // 颜色参数 float _BumpColor;v2f vert (appdata v){v2f o;// 核心坐标转换:模型空间->裁剪空间[3]()o.pos  = UnityObjectToClipPos(v.vertex);  // 法线转换:模型->世界空间 o.worldNormal  = UnityObjectToWorldNormal(v.normal); // 纹理坐标处理:应用缩放偏移参数 o.uv  = TRANSFORM_TEX(v.uv,  _MainTex); return o;}fixed4 frag (v2f i) : SV_Target {// 采样纹理并叠加颜色参数 fixed4 texColor = tex2D(_MainTex, i.uv)  * _Color;// 可视化法线数据(范围转换到0-1)fixed3 normalColor = i.worldNormal+_BumpColor;// 最终输出颜色(叠加法线可视化效果)return texColor * float4(normalColor, 1.0);}ENDCG }}
}

2.高光遮罩光(Specular Mask)
使用纹理Alpha通道控制高光强度
其实就是高光,只是一张贴图,通过透明通道来控制各部位高光的值

Shader "Custom/SpecularMask" {Properties {_MainTex ("Main Texture", 2D) = "white" {}_SpecularMask ("Specular Mask (Alpha)", 2D) = "white" {}_SpecularScale ("Specular Scale", Range(0, 2)) = 1.0_SpecularColor ("Specular Color", Color) = (1,1,1,1)_Gloss ("Gloss", Range(8, 256)) = 20}SubShader {Tags { "RenderType"="Opaque" "LightMode"="ForwardBase"}Pass {CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"#include "Lighting.cginc"struct appdata {float4 vertex : POSITION;float3 normal : NORMAL;float2 uv : TEXCOORD0;};struct v2f {float4 pos : SV_POSITION;float2 uv : TEXCOORD0;float3 worldNormal : TEXCOORD1;float3 viewDir : TEXCOORD2;};sampler2D _MainTex;sampler2D _SpecularMask;float4 _SpecularMask_ST;float _SpecularScale;float4 _SpecularColor;float _Gloss;v2f vert (appdata v) {v2f o;o.pos = UnityObjectToClipPos(v.vertex);o.uv = TRANSFORM_TEX(v.uv, _SpecularMask);// 计算世界空间法线和视角方向o.worldNormal = UnityObjectToWorldNormal(v.normal);o.viewDir = normalize(_WorldSpaceCameraPos - mul(unity_ObjectToWorld, v.vertex).xyz);return o;}fixed4 frag (v2f i) : SV_Target {// 基础纹理采样fixed4 baseColor = tex2D(_MainTex, i.uv);// 高光遮罩采样fixed4 mask = tex2D(_SpecularMask, i.uv);float specularIntensity = mask.a * _SpecularScale;// 光照计算float3 lightDir = normalize(_WorldSpaceLightPos0.xyz);float3 halfDir = normalize(lightDir + i.viewDir);// 高光计算float spec = pow(max(0, dot(normalize(i.worldNormal), halfDir)), _Gloss);float3 specular = _SpecularColor.rgb * spec * specularIntensity;// 最终颜色合成return fixed4(baseColor.rgb + specular, 1.0);}ENDCG}}FallBack "Diffuse"
}

3.边缘光(Rim Light)
基于菲涅尔效应:rim=pow(1.0-dot(N,V),_RimPower)


文章转载自:

http://WWS2kNjm.hpyfg.cn
http://xSIEtZMx.hpyfg.cn
http://B9RiLAHz.hpyfg.cn
http://Ft7v0pG6.hpyfg.cn
http://tp6Gn16w.hpyfg.cn
http://xfVUHMYW.hpyfg.cn
http://wtmfnKcN.hpyfg.cn
http://3ctGxNIg.hpyfg.cn
http://FGmpOFRn.hpyfg.cn
http://wDxL1HHi.hpyfg.cn
http://C9bhF2Ey.hpyfg.cn
http://2Dgac6t8.hpyfg.cn
http://X94mZKF3.hpyfg.cn
http://KyK3nTFF.hpyfg.cn
http://ZISrSSAs.hpyfg.cn
http://Np9CDwQE.hpyfg.cn
http://BDV5IJG1.hpyfg.cn
http://kAxI553m.hpyfg.cn
http://gXb2m7ZE.hpyfg.cn
http://oDVlR6IG.hpyfg.cn
http://WDefLRpn.hpyfg.cn
http://Dhz3tekk.hpyfg.cn
http://OfOxupFW.hpyfg.cn
http://6Z1xwA82.hpyfg.cn
http://9ljLE83X.hpyfg.cn
http://416en5LN.hpyfg.cn
http://85jwvOw8.hpyfg.cn
http://sW6szPbE.hpyfg.cn
http://p4DicZJq.hpyfg.cn
http://73IDSFwt.hpyfg.cn
http://www.dtcms.com/wzjs/655888.html

相关文章:

  • 文山住房和城乡建设局网站腾讯短网址在线生成
  • iis默认网站建设中电子书网站开发
  • 响应式网站建设公司'wordpress skype
  • 网站建设服务费应该算什么科目网站上的公告怎么做参考文献
  • 响应式网站div居中简单个人网页设计html
  • 网站开发大致需要哪些步骤益阳市住房和城乡建设局网站
  • 旅游网站制作方案嵌入式软件开发做什么
  • 旅游网站开发网站设计报告书巴顿品牌设计
  • 网站的不同类建设网站怎么入账
  • 手机网站淘宝客营销方案论文
  • 唐河企业网站制作怎么样怎么用ps做网站首页
  • 北京住房与城乡建设厅网站首页miya1173跳转接口
  • 企业网站推广平台微信建网站服务
  • 遵义怎样做网站wordpress 后台 主题
  • 集团网站建设招标附近做广告牌的电话
  • 怎样做网站漂浮扬州做网站的
  • 杭州做网站hzyze深圳外贸建站网络推广哪家好
  • 网站列表怎么做东莞什么行业做网站的多
  • 无锡做网站公司哪家比较好python网站开发教程
  • 优秀设计师的个人网站买卖网站
  • 中山做网站网站建设备案条件
  • 苏州做网站哪里好wordpress 图片 筛选 插件
  • 网站建设实训的心得的体会访问自己做的网站
  • 网站响应式首页模板下载如何用flashfxp上传网站
  • 一 建设网站前的市场分析松原建设网站
  • 有哪里可以做兼职翻译的网站wordpress采集自动伪原创
  • 润滑油手机网站模板桂林公司注册
  • 做垂直导购网站还行吗苏州沧浪做网站哪家好
  • 博物馆网站建设国外搜索引擎大全
  • 自己做网站投放广告如何做行业网站