Exemplo n.º 1
0
 public override float GetMetallic(RayCastHit hit)
 {
     if (mroTex != null)
     {
         Color mro = mroTex.Sample((float)(hit.texcoord.x * tile.x), (float)(hit.texcoord.y * tile.y));
         return(mro.r);
     }
     return(metallic);
 }
Exemplo n.º 2
0
 public override Vector3 GetWorldNormal(RayCastHit hit)
 {
     if (bump != null)
     {
         return(RecalucateNormal(hit.normal, hit.tangent, bump.Sample((float)(hit.texcoord.x * tile.x), (float)(hit.texcoord.y * tile.y))));
     }
     return(hit.normal);
 }
Exemplo n.º 3
0
        public override Color GetEmissive(RayCastHit hit)
        {
            Color emissiveColor = emissive;

            if (emissiveTex != null)
            {
                emissiveColor *= emissiveTex.Sample((float)(hit.texcoord.x * tile.x), (float)(hit.texcoord.y * tile.y));
            }
            return(emissiveColor);
        }
Exemplo n.º 4
0
        public override Color GetAlbedo(RayCastHit hit)
        {
            Color albedoColor = color;

            if (albedo != null)
            {
                albedoColor *= albedo.Sample((float)(hit.texcoord.x * tile.x), (float)(hit.texcoord.y * tile.y));
            }
            return(albedoColor);
        }
        public override Color GetEmissive(RayCastHit hit)
        {
            if (environment == null)
            {
                return(color * intensity);
            }
            float fi    = (float)Math.Atan2(hit.normal.x, hit.normal.z);
            float InvPi = (float)(1.0 / Math.PI);
            float u     = fi * 0.5f * InvPi;
            float theta = (float)Math.Acos(hit.normal.y);

            float v = 1.0f - theta * InvPi;

            return(environment.Sample(u, v) * color * intensity);
        }