近期热门
粉丝7
关注 3
获赞 8
首页 CGJOY论坛 特效作品交流 解惑专区
求助关于模型菲涅尔内发光的问题。

[解惑专区] 求助关于模型菲涅尔内发光的问题。

 !heats_icon! [复制链接]
3921 13 0 0 4年前 举报
做了一个模型内发光的Shader,但是呈现出来的效果是模型在摄像机空间下,呈现出来的效果不一样。
效果如图所示。

又没有什么办法,让所有效果统一到模型在摄像机中心的时候,呈现出来的效果。
未标题-1.png
0
点赞
0
打赏
0
添加到收藏夹

0

点击复制链接

使用微信扫码分享
一次扣10个券
全部评论14
您需要登录后才可以回帖 登录

哔巴可可 发表于 2020-5-4 12:02
其实你仔细想想,如果你每个角度都一样,为啥不用图片来做,而用模型材质........你本可以渲染一张图就行了

这个每个角度是不一样的,是要用在项目里面角色模型上面的。
4年前
回复

使用道具 举报

屌炸了,亮瞎了
4年前
回复

使用道具 举报

其实你仔细想想,如果你每个角度都一样,为啥不用图片来做,而用模型材质........你本可以渲染一张图就行了
4年前
回复

使用道具 举报

pe0899 发表于 2020-4-30 15:24
你这个shader是没得问题的,主要是因为你的摄像机, 正交摄像机太靠近物体了 ,你吧摄像机的距离稍微拉远 ...

差不多就是我截图的样子, 我拉的有点远 , 你可以自己测试下合理距离~!
企业微信截图_15882311884958.png
企业微信截图_15882311933453.png
企业微信截图_15882312711830.png
企业微信截图_15882312781799.png
4年前
回复

使用道具 举报

多重人格 发表于 2020-4-29 17:32
这是我弄得Shader  也不知道哪个环节出了问题

你这个shader是没得问题的,主要是因为你的摄像机, 正交摄像机太靠近物体了 ,你吧摄像机的距离稍微拉远一点点 就不会这样了,
4年前
回复

使用道具 举报

pe0899 发表于 2020-4-29 16:10
本来菲尼尔效果就是  由 法线 和视线的夹角产生的 dot(Normal,ObjViewDir) 物体月考边缘 法线和视线的夹角 ...

这是我弄得Shader  也不知道哪个环节出了问题
4年前
回复

使用道具 举报


Shader "NewShader/Fresnel"
{
Properties
{  
     _Color("Color", Color) = (1,1,1,1)
  _FresnelIntensity("FresnelIntensity",Float)=5
}
SubShader
{
  Tags { "RenderType"="Transparent" "Queue"="Transparent" }
  Blend One One
  Pass
  {
   CGPROGRAM
   #pragma vertex vert
   #pragma fragment frag
   #include "UnityCG.cginc"
   struct a2v
   {
    float4 vertex : POSITION;
    float4 color : COLOR;
    float3 normal : NORMAL;
   };
   
   struct v2f
   {
    float4 pos : SV_POSITION;
    float3 texcoord : TEXCOORD0;
    float3 texcoord1 : TEXCOORD1;
   };
   
   fixed4 _Color;
   float _FresnelIntensity;
      
   v2f vert ( a2v v )
   {
    v2f o;
    o.pos = UnityObjectToClipPos(v.vertex);
    float3 worldPos = mul(unity_ObjectToWorld, v.vertex).xyz;
    o.texcoord.xyz = worldPos;
    float3 worldNormal = UnityObjectToWorldNormal(v.normal);
    o.texcoord1.xyz = worldNormal;

    return o;
   }
   
   fixed4 frag (v2f i ) : SV_Target
   {
  
    float3 worldPos = i.texcoord.xyz;
    float3 worldViewDir = UnityWorldSpaceViewDir(worldPos);
    worldViewDir = normalize(worldViewDir);
    float3 worldNormal = i.texcoord1.xyz;
    float fresnelColor = ( 0.0 + 1.0 * pow( 1.0 - dot( worldNormal, worldViewDir ), _FresnelIntensity ) )* _Color;
    float4 col = fresnelColor * _Color;
   
    return col;
   }
   ENDCG
  }
}


}

4年前
回复

使用道具 举报

本来菲尼尔效果就是  由 法线 和视线的夹角产生的 dot(Normal,ObjViewDir) 物体月考边缘 法线和视线的夹角就越小,看着就会是你图片的效果, 不过如果不是正交摄像机的话效果应该不会像你那个那么严重吧。我写了个在正交摄像机下测试了下  效果还能接受啊~!
企业微信截图_15881479246249.png
企业微信截图_15881478897253.png
4年前
回复

使用道具 举报

nuox4 发表于 2020-4-20 15:29
正交是会到这问题的

有没有什么办法可以解决呢?
4年前
回复

使用道具 举报

数据加载中....
没有更多评论了
您当前使用的浏览器IE内核版本过低会导致网站显示错误

请使用高速内核浏览器或其他浏览器