public virtual void OnSetConstants(IMaterialRendererServices services) { IVideoDriver driver = services.VideoDriver; // set inverted world matrix // if we are using highlevel shaders (the user can select this when // starting the program), we must set the constants by name. Matrix4 invWorld = driver.GetTransform(TransformationState.WORLD); invWorld.MakeInverse(); if (UseHighLevelShaders) services.SetVertexShaderConstant("mInvWorld", invWorld.GetFloats(), 16); else services.SetVertexShaderConstant(invWorld.GetFloats(), 0, 4); // set clip matrix Matrix4 worldViewProj; worldViewProj = driver.GetTransform(TransformationState.PROJECTION); worldViewProj *= driver.GetTransform(TransformationState.VIEW); worldViewProj *= driver.GetTransform(TransformationState.WORLD); if (UseHighLevelShaders) services.SetVertexShaderConstant("mWorldViewProj", worldViewProj.GetFloats(), 16); else services.SetVertexShaderConstant(worldViewProj.GetFloats(), 4, 4); // set camera position Vector3D pos = device.SceneManager.ActiveCamera.Position; if (UseHighLevelShaders) services.SetVertexShaderConstant("mLightPos",vectorToArray(pos), 3); else services.SetVertexShaderConstant(vectorToArray(pos), 8, 1); // set light color Colorf col= new Colorf(0.0f,1.0f,1.0f,0.0f); if (UseHighLevelShaders) services.SetVertexShaderConstant("mLightColor", colorToArray(col), 4); else services.SetVertexShaderConstant(colorToArray(col), 9, 1); // set transposed world matrix Matrix4 world = driver.GetTransform(TransformationState.WORLD); world = world.GetTransposed(); if (UseHighLevelShaders) services.SetVertexShaderConstant("mTransWorld", world.GetFloats(), 16); else services.SetVertexShaderConstant(world.GetFloats(), 10, 4); }
public virtual void OnSetConstants(IMaterialRendererServices services) { IVideoDriver driver = services.VideoDriver; // set inverted world matrix // if we are using highlevel shaders (the user can select this when // starting the program), we must set the constants by name. Matrix4 invWorld = driver.GetTransform(TransformationState.WORLD); invWorld.MakeInverse(); if (UseHighLevelShaders) { services.SetVertexShaderConstant("mInvWorld", invWorld.GetFloats(), 16); } else { services.SetVertexShaderConstant(invWorld.GetFloats(), 0, 4); } // set clip matrix Matrix4 worldViewProj; worldViewProj = driver.GetTransform(TransformationState.PROJECTION); worldViewProj *= driver.GetTransform(TransformationState.VIEW); worldViewProj *= driver.GetTransform(TransformationState.WORLD); if (UseHighLevelShaders) { services.SetVertexShaderConstant("mWorldViewProj", worldViewProj.GetFloats(), 16); } else { services.SetVertexShaderConstant(worldViewProj.GetFloats(), 4, 4); } // set camera position Vector3D pos = device.SceneManager.ActiveCamera.Position; if (UseHighLevelShaders) { services.SetVertexShaderConstant("mLightPos", vectorToArray(pos), 3); } else { services.SetVertexShaderConstant(vectorToArray(pos), 8, 1); } // set light color Colorf col = new Colorf(0.0f, 1.0f, 1.0f, 0.0f); if (UseHighLevelShaders) { services.SetVertexShaderConstant("mLightColor", colorToArray(col), 4); } else { services.SetVertexShaderConstant(colorToArray(col), 9, 1); } // set transposed world matrix Matrix4 world = driver.GetTransform(TransformationState.WORLD); world = world.GetTransposed(); if (UseHighLevelShaders) { services.SetVertexShaderConstant("mTransWorld", world.GetFloats(), 16); } else { services.SetVertexShaderConstant(world.GetFloats(), 10, 4); } }
public void OnSetConstants( IMaterialRendererServices services ) { Matrix4 invWorld = services.VideoDriver.GetTransform(TransformationState.WORLD); invWorld.MakeInverse(); if (UseHighLevelShaders) services.SetVertexShaderConstant("mInvWorld", invWorld.GetFloats(), 16); else services.SetVertexShaderConstant(invWorld.GetFloats(), 0, 4); // set clip matrix Matrix4 worldViewProj; worldViewProj = services.VideoDriver.GetTransform(TransformationState.PROJECTION); worldViewProj *= services.VideoDriver.GetTransform(TransformationState.VIEW); worldViewProj *= services.VideoDriver.GetTransform(TransformationState.WORLD); if (UseHighLevelShaders) services.SetVertexShaderConstant("mWorldViewProj", worldViewProj.GetFloats(), 16); else services.SetVertexShaderConstant(worldViewProj.GetFloats(), 4, 4); // set camera position Vector3D campos = device.SceneManager.ActiveCamera.Position; float[] pos = new float[4]; pos[0] = campos.X; pos[1] = campos.Y; pos[2] = campos.Z; pos[3] = 0; if (UseHighLevelShaders) services.SetVertexShaderConstant("mLightPos", pos, 3); else services.SetVertexShaderConstant(pos, 8, 1); // set light color pos[0] = 0; pos[1] = 1; pos[2] = 1; pos[3] = 0; if (UseHighLevelShaders) services.SetVertexShaderConstant("mLightColor", pos, 4); else services.SetVertexShaderConstant(pos, 9, 1); // set transposed world matrix Matrix4 world = services.VideoDriver.GetTransform(TransformationState.WORLD); world = world.GetTransposed(); if (UseHighLevelShaders) services.SetVertexShaderConstant("mTransWorld", world.GetFloats(), 16); else services.SetVertexShaderConstant(world.GetFloats(), 10, 4); }
public void OnSetConstants(IMaterialRendererServices services) { Matrix4 invWorld = services.VideoDriver.GetTransform(TransformationState.WORLD); invWorld.MakeInverse(); if (UseHighLevelShaders) { services.SetVertexShaderConstant("mInvWorld", invWorld.GetFloats(), 16); } else { services.SetVertexShaderConstant(invWorld.GetFloats(), 0, 4); } // set clip matrix Matrix4 worldViewProj; worldViewProj = services.VideoDriver.GetTransform(TransformationState.PROJECTION); worldViewProj *= services.VideoDriver.GetTransform(TransformationState.VIEW); worldViewProj *= services.VideoDriver.GetTransform(TransformationState.WORLD); if (UseHighLevelShaders) { services.SetVertexShaderConstant("mWorldViewProj", worldViewProj.GetFloats(), 16); } else { services.SetVertexShaderConstant(worldViewProj.GetFloats(), 4, 4); } // set camera position Vector3D campos = device.SceneManager.ActiveCamera.Position; float[] pos = new float[4]; pos[0] = campos.X; pos[1] = campos.Y; pos[2] = campos.Z; pos[3] = 0; if (UseHighLevelShaders) { services.SetVertexShaderConstant("mLightPos", pos, 3); } else { services.SetVertexShaderConstant(pos, 8, 1); } // set light color pos[0] = 0; pos[1] = 1; pos[2] = 1; pos[3] = 0; if (UseHighLevelShaders) { services.SetVertexShaderConstant("mLightColor", pos, 4); } else { services.SetVertexShaderConstant(pos, 9, 1); } // set transposed world matrix Matrix4 world = services.VideoDriver.GetTransform(TransformationState.WORLD); world = world.GetTransposed(); if (UseHighLevelShaders) { services.SetVertexShaderConstant("mTransWorld", world.GetFloats(), 16); } else { services.SetVertexShaderConstant(world.GetFloats(), 10, 4); } }