public override void Init( FXEffect m_effect, FXConstantBuffer m_cb ) { // bind the local variables with the shader Color_Variable = m_cb.GetMemberByName<Vector3>( VariableName + "_Color" ); // set the default values Color_Variable.Set(_color); }
public override void Init( FXEffect m_effect, FXConstantBuffer m_cb ) { // bind the local variables with the shader Texture_Variable = m_effect.GetResourceByName(VariableName + "_Texture"); // set the default values if (Tex != null) Texture_Variable.SetResource(Tex.shaderResource); }
public override void Init( FXEffect m_effect, FXConstantBuffer m_cb ) { // bind the local variables with the shader NumBoxX_Variable = m_cb.GetMemberByName<int>( VariableName + "_CheckerX" ); NumBoxY_Variable = m_cb.GetMemberByName<int>( VariableName + "_CheckerY" ); // set the default values NumBoxX_Variable.Set(_NumBoxX); NumBoxY_Variable.Set(_NumBoxY); }
public override void Init( FXEffect m_effect, FXConstantBuffer m_cb ) { // bind the local variables with the shader BrickWidth_Variable = m_cb.GetMemberByName<float>( VariableName + "_BrickWidth" ); BrickHeight_Variable = m_cb.GetMemberByName<float>( VariableName + "_BrickHeight" ); BrickShift_Variable = m_cb.GetMemberByName<float>( VariableName + "_BrickShift" ); MortarThickness_Variable = m_cb.GetMemberByName<float>( VariableName + "_MortarThickness" ); // set the default values BrickWidth_Variable.Set(_BrickWidth); BrickHeight_Variable.Set(_BrickHeight); BrickShift_Variable.Set(_BrickShift); MortarThickness_Variable.Set(_MortarThickness); }
private void InitShader() { /// get the constant buffer that have all of our variables cbCustomShader = m_effect.GetConstantBufferByName( "CustomVariables" ); }
public override void Init( FXEffect m_effect , FXConstantBuffer m_cb ) { /// Bind the random Texture RandomTex_Variable = m_effect.GetResourceByName(VariableName + "_RandomTex"); /// Get the variables from Constant buffer MinValue_Variable = m_cb.GetMemberByName<float>( VariableName + "_MinValue" ); MaxValue_Variable = m_cb.GetMemberByName<float>( VariableName + "_MaxValue" ); Tile_X_Variable = m_cb.GetMemberByName<float>( VariableName + "_Tile_X" ); Tile_Y_Variable = m_cb.GetMemberByName<float>( VariableName + "_Tile_Y" ); Loops_Variable = m_cb.GetMemberByName<int>( VariableName + "_Loops" ); // create and set random texture SetRandomTex(_Seed); // set the values of the variables MinValue_Variable.Set(_MinValue); MaxValue_Variable.Set(_MaxValue); Loops_Variable.Set(_Loops); Tile_X_Variable.Set(_Tile_X); Tile_Y_Variable.Set(_Tile_Y); }
private void InitShader() { /// Bind the random Texture RandomTex_Variable =m_effect.GetResourceByName( "randomTex" ); /// Bind the constant buffer with local buffer CB_PerlinNoise = m_effect.GetConstantBufferByName<cbPerlinNoise>( "cbPerlinNoiseVariables"); // create and set random texture SetRandomTex( _Seed ); }
public void InitBuffers(out Buffer Points, out Buffer Regions) { // get the number of the points int SizeOfPoint = ComputeShader.SizeOfFloat2; // allocate the 2 buffers g_pBuffer1 = ComputeShader.CreateBuffer(MaxNumElements, SizeOfPoint, AccessViewType.SRV | AccessViewType.UAV); g_pBuffer1.DebugName = "g_pBuffer1"; g_pBuffer2 = ComputeShader.CreateBuffer(MaxNumElements, SizeOfPoint, AccessViewType.UAV); g_pBuffer2.DebugName = "g_pBuffer2"; g_pBuffer3 = ComputeShader.CreateBuffer(MaxNumElements, SizeOfPoint, AccessViewType.UAV); g_pBuffer3.DebugName = "g_pBuffer3"; g_pBuffer_HRegions = ComputeShader.CreateBuffer(20000, RegionInfo.GetStructSize(), AccessViewType.UAV); g_pBuffer_HRegions.DebugName = "g_pBuffer_HRegions"; g_pBuffer_VRegions = ComputeShader.CreateBuffer(20000, RegionInfo.GetStructSize(), AccessViewType.UAV); g_pBuffer_VRegions.DebugName = "g_pBuffer_VRegions"; // create the UAVs uavBuffer1 = FXResourceVariable.InitUAVResource(this.dev, g_pBuffer1); uavBuffer2 = FXResourceVariable.InitUAVResource(this.dev, g_pBuffer2); uavBuffer3 = FXResourceVariable.InitUAVResource(this.dev, g_pBuffer3); uavHRegions = FXResourceVariable.InitUAVResource(this.dev, g_pBuffer_HRegions); uavVRegions = FXResourceVariable.InitUAVResource(this.dev, g_pBuffer_VRegions); rvData = new FxResourceVariableList(); rvInput = new FxResourceVariableList(); rvRegionsInput = new FxResourceVariableList(); rvRegionsOutput = new FxResourceVariableList(); // link the buffers with shaders rvData.AddResourceFromShader(CSBitonicSort.m_effect,"Data"); rvData.AddResourceFromShader(CSMatrixTranspose.m_effect, "Data"); rvData.AddResourceFromShader(CSCopyRegion.m_effect, "Data"); rvData.AddResourceFromShader(CSCopySubBuffer.m_effect, "Data"); rvInput.AddResourceFromShader(CSMatrixTranspose.m_effect, "Input"); rvInput.AddResourceFromShader(CSFindSplitIndexH.m_effect, "Input"); rvInput.AddResourceFromShader(CSFindSplitIndexV.m_effect, "Input"); rvInput.AddResourceFromShader(CSCopyRegion.m_effect, "Input"); rvInput.AddResourceFromShader(CSCopySubBuffer.m_effect, "Input"); //rvRegionsInput.AddResourceFromShader(CSFindSplitIndexH.m_effect, "RegionInfoInput"); rvRegionsInput.AddResourceFromShader(CSFindSplitIndexV.m_effect, "RegionInfoInput"); rvRegionsInput.AddResourceFromShader(CSCopyRegion.m_effect, "RegionInfoInput"); rvRegionsInput.AddResourceFromShader(CSFillRegionInfo.m_effect, "RegionInfoInput"); rvRegionsOutput.AddResourceFromShader(CSFindSplitIndexH.m_effect, "RegionInfoOutput"); rvRegionsOutput.AddResourceFromShader(CSFindSplitIndexV.m_effect, "RegionInfoOutput"); //rvRegionsOutput.AddResourceFromShader(CSCopyRegion.m_effect, "RegionInfoOutput"); rvRegionsOutput.AddResourceFromShader(CSFillRegionInfo.m_effect, "RegionInfoOutput"); // Bind the CB CBBitonic = CSBitonicSort.m_effect.GetConstantBufferByName<cbBitonic>("CB"); CBTranspose = CSMatrixTranspose.m_effect.GetConstantBufferByName<cbBitonic>("CB"); CBFindSplitIndexH = CSFindSplitIndexH.m_effect.GetConstantBufferByName<CB_Split>("CB_Split"); CBFindSplitIndexV = CSFindSplitIndexV.m_effect.GetConstantBufferByName<CB_Split>("CB_Split"); CBFillRegionInfo = CSFillRegionInfo.m_effect.GetConstantBufferByName<CB_Split>("CB_Split"); CBCopyRegion =CSCopyRegion.m_effect.GetConstantBufferByName<CB_Split>("CB_Split"); CBCopySubBuffer = CSCopySubBuffer.m_effect.GetConstantBufferByName<CB_Split>("CB_Split"); // create a staging buffer stagingResult = ComputeShader.CreateStagingBuffer(g_pBuffer1); // set the output Points = g_pBuffer3; Regions = g_pBuffer_HRegions; // this is complex :P }
private void InitVariables() { m_ViewConstantBuffer = m_effect.GetConstantBufferByName( "cbViewMatrix" ); /// Obtain the variables from effect m_WorldInverseTranspose = m_ViewConstantBuffer.GetMemberByName<Matrix>( "g_mWorldInverseTrans" ); m_ViewInverse = m_ViewConstantBuffer.GetMemberByName<Matrix>( "g_mViewInverse" ); /// Matrix transformations m_WorldMatrixVariable = m_ViewConstantBuffer.GetMemberByName<Matrix>( "g_mWorld" ); m_ViewMatrixVariable = m_ViewConstantBuffer.GetMemberByName<Matrix>( "g_mView" ); m_WorldViewMatrixVariable = m_ViewConstantBuffer.GetMemberByName<Matrix>( "g_mWorldView" ); m_WorldViewProjectionMatrixVariable = m_ViewConstantBuffer.GetMemberByName<Matrix>("g_mWorldViewProjection"); m_ProjectionMatrixVariable = m_ViewConstantBuffer.GetMemberByName<Matrix>("g_mProjection"); m_ViewProjectionMatrixVariable = m_ViewConstantBuffer.GetMemberByName<Matrix>("g_mViewProjection"); /// Camera Position m_CameraPosition = m_ViewConstantBuffer.GetMemberByName<Vector3>("g_vCameraPosition"); /// Shader Variables m_MaterialBuffer = m_effect.GetConstantBufferByName( "cbMaterial" ); m_Diffuse = m_MaterialBuffer.GetMemberByName<Vector3>( "g_vMaterialDiffuse" ); m_Ambient = m_MaterialBuffer.GetMemberByName<Vector3>( "g_vMaterialAmbient" ); m_Opacity = m_MaterialBuffer.GetMemberByName<float>( "g_fMaterialAlpha" ); m_Specular = m_MaterialBuffer.GetMemberByName<Vector3>( "g_vMaterialSpecular" ); m_SpecularPower = m_MaterialBuffer.GetMemberByName<float>( "g_nMaterialShininess" ); }
public virtual void Init( FXEffect m_effect, FXConstantBuffer m_cb ) { }