public override void Apply(DX11ShaderInstance shaderinstance, DX11RenderSettings settings)
 {
     Vector2 v = new Vector2(settings.RenderWidth, settings.RenderHeight);
     v.X = 1.0f / v.X;
     v.Y = 1.0f / v.Y;
     shaderinstance.SetByName(this.Name, v);
 }
 public override void Apply(DX11ShaderInstance shaderinstance, DX11RenderSettings settings, DX11ObjectRenderSettings obj)
 {
     if (obj.Geometry != null)
     {
         if (obj.Geometry.HasBoundingBox)
         {
             shaderinstance.SetByName(this.Name, obj.Geometry.BoundingBox.Maximum);
         }
         else
         {
             shaderinstance.SetByName(this.Name, vec);
         }
     }
     else
     {
         shaderinstance.SetByName(this.Name, vec);
     }
 }
예제 #3
0
 public override void Apply(DX11ShaderInstance shaderinstance, DX11RenderSettings settings, DX11ObjectRenderSettings obj)
 {
     shaderinstance.SetByName(this.Name, obj.IterationIndex);
 }
예제 #4
0
 public override void Apply(DX11ShaderInstance shaderinstance, DX11RenderSettings settings, DX11ObjectRenderSettings obj)
 {
     shaderinstance.SetByName(this.Name, (float)obj.DrawCallIndex);
 }
예제 #5
0
 public override void Apply(DX11ShaderInstance shaderinstance, DX11RenderSettings settings, DX11ObjectRenderSettings obj)
 {
     shaderinstance.SetByName(this.Name, obj.WorldTransform * settings.View);
 }
예제 #6
0
 public override void Apply(DX11ShaderInstance shaderinstance, DX11RenderSettings settings, DX11ObjectRenderSettings obj)
 {
     shaderinstance.SetByName(this.Name, Matrix.Transpose(obj.WorldTransform));
 }
 public override void Apply(DX11ShaderInstance shaderinstance, DX11RenderSettings settings)
 {
     shaderinstance.SetByName(this.Name, Matrix.Invert(settings.ViewProjection));
 }
 public override void Apply(DX11ShaderInstance shaderinstance, DX11RenderSettings settings)
 {
     Matrix iv = Matrix.Invert(settings.View);
     shaderinstance.SetByName(this.Name, new Vector3(iv.M41, iv.M42, iv.M43));
 }
 public override void Apply(DX11ShaderInstance shaderinstance, DX11RenderSettings settings)
 {
     shaderinstance.SetByName(this.Name, Matrix.Transpose(settings.View));
 }
 public override void Apply(DX11ShaderInstance shaderinstance, DX11RenderSettings settings)
 {
     shaderinstance.SetByName(this.Name, settings.View);
 }
예제 #11
0
 public override void Apply(DX11ShaderInstance shaderinstance, DX11RenderSettings settings)
 {
     shaderinstance.SetByName(this.Name, new Vector3(settings.RenderWidth, settings.RenderHeight, settings.RenderDepth));
 }
예제 #12
0
 public override void Apply(DX11ShaderInstance shaderinstance, DX11RenderSettings settings)
 {
     if (settings.BackBuffer != null)
     {
         EffectVariable counter = this.variable.GetAnnotationByName("counter");
         if (counter != null)
         {
             float cnt =  counter.AsScalar().GetFloat();
             shaderinstance.SetByName(this.Name, settings.BackBuffer.UAV,(int)cnt);
         }
         else
         {
             if (settings.ResetCounter)
             {
                 shaderinstance.SetByName(this.Name, settings.BackBuffer.UAV, settings.CounterValue);
             }
             else
             {
                 shaderinstance.SetByName(this.Name, settings.BackBuffer.UAV);
             }
         }
     }
 }
예제 #13
0
 public override void Apply(DX11ShaderInstance shaderinstance, DX11RenderSettings settings)
 {
     if (settings.ReadBuffer != null)
     {
         shaderinstance.SetByName(this.Name, settings.ReadBuffer.SRV);
     }
 }
예제 #14
0
 public override void Apply(DX11ShaderInstance shaderinstance, DX11RenderSettings settings)
 {
     float val = 1.0f / (float)settings.DrawCallCount;
     shaderinstance.SetByName(this.Name, val);
 }
        public override void Apply(DX11ShaderInstance shaderinstance, DX11RenderSettings settings, DX11ObjectRenderSettings obj)
        {
            if (obj.Geometry != null)
            {
                if (obj.Geometry.HasBoundingBox)
                {
                    Vector3 scale = obj.Geometry.BoundingBox.Maximum - obj.Geometry.BoundingBox.Minimum;
                    scale.X = scale.X != 0.0f ? 1.0f / scale.X : 1.0f;
                    scale.Y = scale.Y != 0.0f ? 1.0f / scale.Y : 1.0f;
                    scale.Z = scale.Z != 0.0f ? 1.0f / scale.Z : 1.0f;

                    Matrix m = Matrix.Scaling(scale);

                    shaderinstance.SetByName(this.Name, m);
                }
                else
                {
                    shaderinstance.SetByName(this.Name, m);
                }
            }
            else
            {
                shaderinstance.SetByName(this.Name, m);
            }
        }