public void Init() { SB = new SceneBox(SdfShader); //Info = new List<OpAndType>(); //Operations = new List<MeshFilter>(); //int size = Operations.Count; //for(int i = 0; i < size; i++) //{ // Info.Add(new OpAndType(Operations[i], BooleanType.Union)); //} }
/////////////////////////////////////////// protected override void OnAttach() { base.OnAttach(); //create window window = ControlDeclarationManager.Instance.CreateControl("Gui\\GUISamples2Window.gui"); Controls.Add(window); sceneBox = (SceneBox)window.Controls["SceneBox"]; ((Button)window.Controls["Close"]).Click += Close_Click; ((Button)window.Controls["SceneBoxChangeModel"]).Click += SceneBoxChangeModel_Click; ((Button)window.Controls["SceneBoxCreateParticle"]).Click += SceneBoxCreateParticle_Click; ((Button)window.Controls["SceneBoxFullScreenEffect"]).Click += SceneBoxFullScreenEffect_Click; //( (Button)window.Controls[ "RenderToTextureTest" ] ).Click += RenderToTextureTest_Click; BackColor = new ColorValue(0, 0, 0, .5f); MouseCover = true; renderToTexture.Create(window.Controls["RenderToTextureOutput"]); }
/////////////////////////////////////////// protected override void OnAttach() { base.OnAttach(); //create window window = ControlDeclarationManager.Instance.CreateControl( "Gui\\GUISamples2Window.gui" ); Controls.Add( window ); sceneBox = (SceneBox)window.Controls[ "SceneBox" ]; ( (Button)window.Controls[ "Close" ] ).Click += Close_Click; ( (Button)window.Controls[ "SceneBoxChangeModel" ] ).Click += SceneBoxChangeModel_Click; ( (Button)window.Controls[ "SceneBoxCreateParticle" ] ).Click += SceneBoxCreateParticle_Click; ( (Button)window.Controls[ "SceneBoxFullScreenEffect" ] ).Click += SceneBoxFullScreenEffect_Click; //( (Button)window.Controls[ "RenderToTextureTest" ] ).Click += RenderToTextureTest_Click; BackColor = new ColorValue( 0, 0, 0, .5f ); MouseCover = true; renderToTexture.Create( window.Controls[ "RenderToTextureOutput" ] ); }
/// <summary> /// MC 局部更新 /// </summary> /// <param name="SB"></param> public UseMcShader(SceneBox SB, ComputeShader mcShader) { McShader = mcShader; Npoint = SB.ncells + Vector3Int.one; McMin = SB.localBox.min; Voxels = new Vector4[Npoint.x * Npoint.y * Npoint.z]; var tmp = SB.TexMatrix.GetPixelData <float>(0); for (int x = 0; x < Npoint.x; x++) { for (int y = 0; y < Npoint.y; y++) { for (int z = 0; z < Npoint.z; z++) { Vector3 coord = new Vector3(McMin.x + x * Constants.Step, McMin.y + y * Constants.Step, McMin.z + z * Constants.Step); int idx = x + y * Npoint.x + z * Npoint.y * Npoint.x; //int idx = z + y * Npoint.z + x * Npoint.y * Npoint.z; Voxels[idx] = new Vector4(coord.x, coord.y, coord.z, tmp[idx]); } } } }