bool SetShaderParameters(DeviceContext deviceContext, Matrix world, Matrix view, Matrix projection, ShaderResourceView texture, Vector3 lightDirection, Color4 ambientColor, Color4 diffuseColor) { try { var matrixBufferType = new MatrixBufferType { World = Matrix.Transpose(world), View = Matrix.Transpose(view), Projection = Matrix.Transpose(projection) }; deviceContext.UpdateSubresource(ref matrixBufferType, matrixBuffer); deviceContext.VertexShader.SetConstantBuffer(0, matrixBuffer); deviceContext.PixelShader.SetShaderResource(0, texture); var lightBufferType = new LightBufferType { AmbientColor = ambientColor, DiffuseColor = diffuseColor, LightDirection = lightDirection, Padding = 0.0f }; deviceContext.UpdateSubresource(ref lightBufferType, lightBuffer); deviceContext.PixelShader.SetConstantBuffer(0, lightBuffer); } catch { return(false); } return(true); }
private bool SetShaderParameters(DeviceContext deviceContext, Matrix worldMatrix, Matrix viewMatrix, Matrix projectionMatrix, Vector4 pixelColor) { try { worldMatrix.Transpose(); viewMatrix.Transpose(); projectionMatrix.Transpose(); deviceContext.MapSubresource(_matrixBuffer, MapMode.WriteDiscard, MapFlags.None, out DataStream mappedResource); MatrixBufferType matrixBuffer = new MatrixBufferType() { world = worldMatrix, view = viewMatrix, projection = projectionMatrix, color = pixelColor }; mappedResource.Write(matrixBuffer); deviceContext.UnmapSubresource(_matrixBuffer, 0); int bufferSlotNuber = 0; deviceContext.VertexShader.SetConstantBuffer(bufferSlotNuber, _matrixBuffer); return(true); } catch { return(false); } }
bool SetShaderParameters(DeviceContext deviceContext, Matrix world, Matrix view, Matrix projection, ShaderResourceView[] textureArray, Vector3 lightDirection, Color4 diffuseColor, Vector3 cameraPosition, Color4 specularColor, float specularPower) { try { var matrixBufferType = new MatrixBufferType { World = Matrix.Transpose(world), View = Matrix.Transpose(view), Projection = Matrix.Transpose(projection) }; deviceContext.UpdateSubresource(ref matrixBufferType, matrixBuffer); deviceContext.VertexShader.SetConstantBuffer(0, matrixBuffer); deviceContext.PixelShader.SetShaderResources(0, textureArray); var lightBufferType = new LightBufferType { DiffuseColor = diffuseColor, LightDirection = lightDirection, SpecularColor = specularColor, SpecularPower = specularPower }; deviceContext.UpdateSubresource(ref lightBufferType, lightBuffer); deviceContext.PixelShader.SetConstantBuffer(0, lightBuffer); var cameraBufferType = new CameraBufferType { CameraPosition = cameraPosition }; deviceContext.UpdateSubresource(ref cameraBufferType, cameraBuffer); deviceContext.VertexShader.SetConstantBuffer(1, cameraBuffer); } catch { return(false); } return(true); }
bool SetShaderParameters(DeviceContext deviceContext, Matrix world, Matrix view, Matrix projection) { try { var matrixBufferType = new MatrixBufferType { World = Matrix.Transpose(world), View = Matrix.Transpose(view), Projection = Matrix.Transpose(projection) }; deviceContext.UpdateSubresource(ref matrixBufferType, matrixBuffer); deviceContext.VertexShader.SetConstantBuffer(0, matrixBuffer); } catch { return(false); } return(true); }
bool SetShaderParameters(DeviceContext deviceContext, Matrix world, Matrix view, Matrix projection, ShaderResourceView texture, Vector4 clipPlane) { try { var matrixBufferType = new MatrixBufferType { World = Matrix.Transpose(world), View = Matrix.Transpose(view), Projection = Matrix.Transpose(projection) }; deviceContext.UpdateSubresource(ref matrixBufferType, matrixBuffer); deviceContext.VertexShader.SetConstantBuffer(0, matrixBuffer); deviceContext.PixelShader.SetShaderResource(0, texture); var clipPlaneBufferType = new ClipPlaneBufferType { ClipPlane = clipPlane }; deviceContext.UpdateSubresource(ref clipPlaneBufferType, clipPlaneBuffer); deviceContext.VertexShader.SetConstantBuffer(1, clipPlaneBuffer); } catch { return(false); } return(true); }
bool SetShaderParameters(DeviceContext deviceContext, Matrix world, Matrix view, Matrix projection, ShaderResourceView texture, float blend) { try { var matrixBufferType = new MatrixBufferType { World = Matrix.Transpose(world), View = Matrix.Transpose(view), Projection = Matrix.Transpose(projection) }; deviceContext.UpdateSubresource(ref matrixBufferType, matrixBuffer); deviceContext.VertexShader.SetConstantBuffer(0, matrixBuffer); deviceContext.PixelShader.SetShaderResource(0, texture); var translateBufferType = new TransparentBufferType { BlendAmount = blend }; deviceContext.UpdateSubresource(ref translateBufferType, transparentBuffer); deviceContext.PixelShader.SetConstantBuffer(0, transparentBuffer); } catch { return(false); } return(true); }
bool SetShaderParameters(DeviceContext deviceContext, Matrix world, Matrix view, Matrix projection, ShaderResourceView texture, float fogStart, float fogEnd) { try { var matrixBufferType = new MatrixBufferType { World = Matrix.Transpose(world), View = Matrix.Transpose(view), Projection = Matrix.Transpose(projection) }; deviceContext.UpdateSubresource(ref matrixBufferType, matrixBuffer); deviceContext.VertexShader.SetConstantBuffer(0, matrixBuffer); deviceContext.PixelShader.SetShaderResource(0, texture); var fogBufferType = new FogBufferType { FogStart = fogStart, FogEnd = fogEnd }; deviceContext.UpdateSubresource(ref fogBufferType, fogBuffer); deviceContext.VertexShader.SetConstantBuffer(1, fogBuffer); } catch { return(false); } return(true); }
bool SetShaderParameters(DeviceContext deviceContext, Matrix world, Matrix view, Matrix projection, ShaderResourceView texture, ShaderResourceView reflectionTexture, Matrix reflection) { try { var matrixBufferType = new MatrixBufferType { World = Matrix.Transpose(world), View = Matrix.Transpose(view), Projection = Matrix.Transpose(projection) }; deviceContext.UpdateSubresource(ref matrixBufferType, matrixBuffer); deviceContext.VertexShader.SetConstantBuffer(0, matrixBuffer); var reflectionBufferType = new ReflectionBufferType { Reflection = Matrix.Transpose(reflection) }; deviceContext.UpdateSubresource(ref reflectionBufferType, reflectionBuffer); deviceContext.VertexShader.SetConstantBuffer(1, reflectionBuffer); deviceContext.PixelShader.SetShaderResource(0, texture); deviceContext.PixelShader.SetShaderResource(1, reflectionTexture); } catch { return(false); } return(true); }
protected override void InitShaderBuffers(Device device) { BufferDescription bufferDescription = new BufferDescription(MatrixBufferType.SizeInBytes(), ResourceUsage.Dynamic, BindFlags.ConstantBuffer, CpuAccessFlags.Write, ResourceOptionFlags.None, 0); m_matrixBuffer = new SharpDX.Direct3D11.Buffer(device, bufferDescription); }