Esempio n. 1
0
        void Call()
        {
            shader.SetFloat("nearClipDistance", Camera.main.nearClipPlane);

            var llnearClip = CamGeometry.NearClipLowerLeftCorner(Camera.main);
            var urnearClip = CamGeometry.NearClipUpperRightCorner(Camera.main);

            shader.SetVector("_nearClipMinCorner", llnearClip);
            shader.SetVector("_nearClipMaxCorner", urnearClip);
            shader.SetVector("cam", Camera.main.transform.position);
            shader.Dispatch(reverseCastKernel, Mathf.CeilToInt(_display.count / (float)vGenConfig.ReverseCastThreadCount), 1, 1);
        }
Esempio n. 2
0
        private void updateCurrentVoxels()
        {
            currentVoxels.Clear();
            //var fakes = FakeChunkData.Stairs(vGenConfig.ChunkSize);
            //int offset = (int)(Time.time / 3f) % 5 + 1;

            //for(int i=0; i<fakes.Length; ++i)
            //{
            //    if(i % offset == 0)
            //    {
            //        currentVoxels.Add(fakes[i]);
            //    }
            //}

            foreach (Ray ray in CamGeometry.NearClipRays(Camera.main, 5))
            {
                uint leaf;

                if (tree.GetFirstRayhit(ray, out leaf, out debugTraversal, out rayStepsDebug))
                {
                    currentVoxels.Add(leaf);
                }
            }
        }