I whant to make this shader on shaderforge

MrRudi

PostMon Apr 02, 2018 3:16 pm

What i whant is to recreate the mmd shader on shaderforge, but im new so i don't how to make it, i would apreciate any help.

Code: Select all

/*
 * MMD Shader for Unity
 *
 * Copyright 2012 Masataka SUMI, Takahiro INOUE
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */
Shader "MMD/PMDMaterial"
{
   Properties
   {
      _Color("拡散色", Color) = (1,1,1,1)
      _SpecularColor("反射色", Color) = (1,1,1)
      _AmbColor("環境色", Color) = (1,1,1)
      _Shininess("反射強度", Float) = 0
      _MainTex("テクスチャ", 2D) = "white" {}
      _ToonTex("トゥーン", 2D) = "white" {}
      _SphereAddTex("スフィア(加算)", 2D) = "black" {}
      _SphereMulTex("スフィア(乗算)", 2D) = "white" {}
   }

   SubShader
   {
      // First Pass
      Pass
      {
         Cull Back
      }

      // Surface Shader
      CGPROGRAM
      #pragma surface surf MMD
      #include "MeshPmdMaterialSurface.cginc"
      ENDCG
   }

   // Other Environment
   Fallback "Diffuse"
}

This is the code of MeshPmdMaterialSurface.cginc

Code: Select all

// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'

  /*
 * MMD Shader for Unity
 *
 * Copyright 2012 Masataka SUMI, Takahiro INOUE
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */
float4 _Color;
float _Opacity;
float4 _OutlineColor;
float _OutlineWidth;

struct v2f
{
   float4 pos : SV_POSITION;
   float2 uv  : TEXCOORD0;
};

v2f vert( appdata_base v )
{
   v2f o;
   float4 pos = UnityObjectToClipPos( v.vertex );
   float width = 0.001 * _OutlineWidth;
   float4 edge_pos = v.vertex + pos.w * width * float4( v.normal, 0.0 );
   o.pos = UnityObjectToClipPos( edge_pos );

   return o;
}
half4 frag( v2f i ) : COLOR
{
   return half4( _OutlineColor.rgb, _Opacity );
}

Return to “Questions”



Who is online

Online users: Bing [Bot] and 3 guests