public void updateCameraUniformBuffer() { if (myIsDebugging == true) { myDebugCamera.updateCameraUniformBuffer(); } if (myIsDirty == true) { myCameraUniformData.ViewMatrix = viewMatrix(); myCameraUniformData.ProjectionMatrix = projMatrix(); myCameraUniformData.ViewProjMatrix = viewProjection(); myCameraUniformData.OrthoMatrix = orthoMatrix(); myCameraUniformData.viewVector = new Vector4(viewVector); myCameraUniformData.CameraPosition = new Vector4(position); myCameraUniformData.top = myZfar * (float)Math.Tan(MathHelper.DegreesToRadians(myFovx) / 2.0f); myCameraUniformData.bottom = -myCameraUniformData.top; myCameraUniformData.left = myCameraUniformData.bottom * myAspectRatio; myCameraUniformData.right = myCameraUniformData.top * myAspectRatio; myCameraUniformData.zNear = myZnear; myCameraUniformData.zFar = myZfar; myCameraUniformData.aspect = myAspectRatio; myCameraUniformData.fov = myFovx; myCameraUniformData.frame = 0; // Renderer.context.frame; myCameraUniformData.dt = 0.0f; // Renderer.context.dt; myCameraUniformBuffer.setData(myCameraUniformData); myIsDirty = false; } }
public void upload() { myMaterialUniformData.ambientReflectivity = ambient; myMaterialUniformData.diffuseReflectivity = diffuse; myMaterialUniformData.specularReflectivity = spec; myMaterialUniformData.emmission = emission; myMaterialUniformData.shininess = shininess; myMaterialUniformData.alpha = alpha; myMaterialUniformData.alphaTest = alphaTest; if (Renderer.device.bindlessTextures) { if (myTextures[(int)TextureId.Diffuse] != null) { myMaterialUniformData.diffuseMapId = myTextures[(int)TextureId.Diffuse].value().handle; } if (myTextures[(int)TextureId.Specular] != null) { myMaterialUniformData.hasSpecularMap = 1; myMaterialUniformData.specularMapId = myTextures[(int)TextureId.Specular].value().handle; } if (myTextures[(int)TextureId.Normal] != null) { myMaterialUniformData.hasNormalMap = 1; myMaterialUniformData.normalMapId = myTextures[(int)TextureId.Normal].value().handle; Texture tex = myTextures[(int)TextureId.Normal].value(); if (tex.hasAlpha) { myMaterialUniformData.hasParallaxMap = 1; myMaterialUniformData.hasParallaxMap = 1; myMaterialUniformData.parallaxScale = 0.04f; } else { myMaterialUniformData.hasParallaxMap = 0; } } } myMaterialUniformBuffer.setData(myMaterialUniformData); }
//public override void preparePerViewFinalize(View v) { } //public override void preparePerPassBegin(Pass p) { } //public override void preparePerPass(Renderable r, Pass p) { } //public override void preparePerPassFinalize(Pass p) { } public override void prepareFrameFinalize() { myLightUniforBuffer.setData(myLightData, 0, 255 * Marshal.SizeOf(typeof(LightUniformData))); myCurrentLightIndex = 0; }