コード例 #1
0
ファイル: WorldGenerator.cs プロジェクト: fishykins/DW-ECS
 public QuadInitData(float3 transformPosition, float3 rotation, QuadPlane plane, WorldFace face)
 {
     this.transformPosition = transformPosition;
     this.rotation          = rotation;
     this.plane             = plane;
     this.face = face;
 }
コード例 #2
0
        public override void Initialise(GraphicsDevice device, ContentManager content)
        {
            Device        = device;
            backdrop      = content.Load <Texture2D>(@"Textures\OITBackdrop");
            oit_pass1     = content.Load <Effect>(@"Shaders\OITPass1");
            oit_pass2     = content.Load <Effect>(@"Shaders\OITPass2");
            oit_pass3     = content.Load <Effect>(@"Shaders\OITPass3");
            batch         = new SpriteBatch(device);
            camera        = new StaticCamera(new Vector3(0, 2, -150), Vector3.Zero, Device.Viewport.AspectRatio, MathHelper.ToRadians(60), 0.5f, 1000.0f);
            oit_colour_rt = new RenderTarget2D(Device, Device.Viewport.Width, Device.Viewport.Height, false, SurfaceFormat.Vector4, DepthFormat.None);
            oit_weight_rt = new RenderTarget2D(Device, Device.Viewport.Width, Device.Viewport.Height, false, SurfaceFormat.Single, DepthFormat.None);

            planes = new QuadPlane[nPlanes];
            for (int i = 0; i < nPlanes; i++)
            {
                float angle = (i * 360.0f) / nPlanes;
                Color c     = ColourSpaces.HSVToRGB(angle, 1, 1);
                planes[i] = new QuadPlane(Vector3.Zero, 80, Vector3.Up, Vector3.Right, c);
            }
            Normal = new BasicEffect(Device);
            Normal.TextureEnabled     = false;
            Normal.VertexColorEnabled = true;
            Normal.LightingEnabled    = false;
            Normal.Projection         = camera.Projection;
            Normal.View = camera.View;

            font = content.Load <SpriteFont>("MenuFont");

            bs.ColorBlendFunction = BlendFunction.Add;

            bs.AlphaSourceBlend = Blend.Zero;
            bs.ColorSourceBlend = Blend.Zero;

            bs.AlphaDestinationBlend = Blend.InverseSourceAlpha;
            bs.ColorDestinationBlend = Blend.InverseSourceAlpha;
        }
コード例 #3
0
ファイル: InitializePlanet.cs プロジェクト: GCoe/unity3d
    void CreateQuads()
    {
        planeObject = (GameObject) Resources.Load("Prefabs/QuadPlane");

        m_sun = GameObject.Find ("Sunlight");
        float x = transform.position.x;
        float y = transform.position.y;
        float z = transform.position.z;
        scalar = 5/radius;

        q1 = (GameObject) Instantiate(planeObject);
        q1.transform.position = new Vector3(x+radius,y,z);
        q1.transform.rotation = Quaternion.Euler(0,0,270);
        q1s = (QuadPlane) q1.GetComponent(typeof(QuadPlane));
        q1s.scaleFactor = scalar;
        q1s.rad = radius;
        q1s.mod = (radius/2);
        q1s.noise = noise;
        q1s.cannotRevert = true;
        q1s.noisemod = noisemod;
        q1s.planetPos = transform.position;
        q1s.hasOcean = hasOcean;
        q1.name = "q1";
        q1s.groundfromspace = m_groundMaterial;
        q1s.m_sun = m_sun;

        q2 = (GameObject) Instantiate(planeObject);
        q2.transform.position = new Vector3(x,y,z+radius);
        q2.transform.rotation = Quaternion.Euler(90,0,0);
        q2s = (QuadPlane) q2.GetComponent(typeof(QuadPlane));
        q2s.scaleFactor = scalar;
        q2s.rad = radius;
        q2s.mod = (radius/2);
        q2s.noise = noise;
        q2s.cannotRevert = true;
        q2s.noisemod = noisemod;
        q2s.planetPos = transform.position;
        q2s.hasOcean = hasOcean;
        q2.name = "q2";
        q2s.groundfromspace = m_groundMaterial;
        q2s.m_sun = m_sun;

        q3 = (GameObject) Instantiate(planeObject);
        q3.transform.position = new Vector3(x,y,z-radius);
        q3.transform.rotation = Quaternion.Euler(270,0,0);
        q3s = (QuadPlane) q3.GetComponent(typeof(QuadPlane));
        q3s.scaleFactor = scalar;
        q3s.rad = radius;
        q3s.mod = (radius/2);
        q3s.noise = noise;
        q3s.cannotRevert = true;
        q3s.noisemod = noisemod;
        q3s.planetPos = transform.position;
        q3s.hasOcean = hasOcean;
        q3.name = "q3";
        q3s.groundfromspace = m_groundMaterial;
        q3s.m_sun = m_sun;

        q4 = (GameObject) Instantiate(planeObject);
        q4.transform.position = new Vector3(x,y+radius,z);
        q4.transform.rotation = Quaternion.Euler(0,0,0);
        q4s = (QuadPlane) q4.GetComponent(typeof(QuadPlane));
        q4s.scaleFactor = scalar;
        q4s.rad = radius;
        q4s.mod = (radius/2);
        q4s.noise = noise;
        q4s.cannotRevert = true;
        q4s.noisemod = noisemod;
        q4s.planetPos = transform.position;
        q4s.hasOcean = hasOcean;
        q4.name = "q4";
        q4s.groundfromspace = m_groundMaterial;
        q4s.m_sun = m_sun;

        q5 = (GameObject) Instantiate(planeObject);
        q5.transform.position = new Vector3(x,y-radius,z);
        q5.transform.rotation = Quaternion.Euler(0,0,180);
        q5s = (QuadPlane) q5.GetComponent(typeof(QuadPlane));
        q5s.scaleFactor = scalar;
        q5s.rad = radius;
        q5s.mod = (radius/2);
        q5s.noise = noise;
        q5s.cannotRevert = true;
        q5s.noisemod = noisemod;
        q5s.planetPos = transform.position;
        q5s.hasOcean = hasOcean;
        q5.name = "q5";
        q5s.groundfromspace = m_groundMaterial;
        q5s.m_sun = m_sun;

        q6 = (GameObject) Instantiate(planeObject);
        q6.transform.position = new Vector3(x-radius,y,z);
        q6.transform.rotation = Quaternion.Euler(0,0,90);
        q6s = (QuadPlane) q6.GetComponent(typeof(QuadPlane));
        q6s.scaleFactor = scalar;
        q6s.rad = radius;
        q6s.mod = (radius/2);
        q6s.noise = noise;
        q6s.cannotRevert = true;
        q6s.noisemod = noisemod;
        q6s.planetPos = transform.position;
        q6s.hasOcean = hasOcean;
        q6.name = "q6";
        q6s.groundfromspace = m_groundMaterial;
        q6s.m_sun = m_sun;

        q1s.CalculatePositions();
        q2s.CalculatePositions();
        q3s.CalculatePositions();
        q4s.CalculatePositions();
        q5s.CalculatePositions();
        q6s.CalculatePositions();

        q1s.initSplit = true;
        q2s.initSplit = true;
        q3s.initSplit = true;
        q4s.initSplit = true;
        q5s.initSplit = true;
        q6s.initSplit = true;

        q1s.splitAgain = true;
        q2s.splitAgain = true;
        q3s.splitAgain = true;
        q4s.splitAgain = true;
        q5s.splitAgain = true;
        q6s.splitAgain = true;

        q1s.splitCount = splitCount;
        q1s.timesSplit = 0;

        q2s.splitCount = splitCount;
        q2s.timesSplit = 0;

        q3s.splitCount = splitCount;
        q3s.timesSplit = 0;

        q4s.splitCount = splitCount;
        q4s.timesSplit = 0;

        q5s.splitCount = splitCount;
        q5s.timesSplit = 0;

        q6s.splitCount = splitCount;
        q6s.timesSplit = 0;

        q1.transform.parent = gameObject.transform;
        q2.transform.parent = gameObject.transform;
        q3.transform.parent = gameObject.transform;
        q4.transform.parent = gameObject.transform;
        q5.transform.parent = gameObject.transform;
        q6.transform.parent = gameObject.transform;

        q1s.planetMaker = gameObject;
        q2s.planetMaker = gameObject;
        q3s.planetMaker = gameObject;
        q4s.planetMaker = gameObject;
        q5s.planetMaker = gameObject;
        q6s.planetMaker = gameObject;

        q1s.planeObject = planeObject;
        q2s.planeObject = planeObject;
        q3s.planeObject = planeObject;
        q4s.planeObject = planeObject;
        q5s.planeObject = planeObject;
        q6s.planeObject = planeObject;

        q1s.groundFromGround = m_groundfromgroundMaterial;
        q2s.groundFromGround = m_groundfromgroundMaterial;
        q3s.groundFromGround = m_groundfromgroundMaterial;
        q4s.groundFromGround = m_groundfromgroundMaterial;
        q5s.groundFromGround = m_groundfromgroundMaterial;
        q6s.groundFromGround = m_groundfromgroundMaterial;

        q1s.planetInit = planetInit;
        q2s.planetInit = planetInit;
        q3s.planetInit = planetInit;
        q4s.planetInit = planetInit;
        q5s.planetInit = planetInit;
        q6s.planetInit = planetInit;
    }
コード例 #4
0
ファイル: QuadPlane.cs プロジェクト: GCoe/unity3d
    void SplitQuad()
    {
        if (hasSplit == false)
        {
        q1 = (GameObject) Instantiate(planeObject);
        //q1 = (GameObject) Instantiate(gameObject);
        q1.transform.position = q1pos;
        q1.transform.rotation = rotation;
        q2 = (GameObject) Instantiate(planeObject);
        //q2 = (GameObject) Instantiate(gameObject);
        q2.transform.position = q2pos;
        q2.transform.rotation = rotation;
        q3 = (GameObject) Instantiate(planeObject);
        //q3 = (GameObject) Instantiate(gameObject);
        q3.transform.position = q3pos;
        q3.transform.rotation = rotation;
        q4 = (GameObject) Instantiate(planeObject);
        //q4 = (GameObject) Instantiate(gameObject);
        q4.transform.position = q4pos;
        q4.transform.rotation = rotation;

        q1s = (QuadPlane) q1.GetComponent(typeof(QuadPlane));
        q2s = (QuadPlane) q2.GetComponent(typeof(QuadPlane));
        q3s = (QuadPlane) q3.GetComponent(typeof(QuadPlane));
        q4s = (QuadPlane) q4.GetComponent(typeof(QuadPlane));

        q1s.rad = rad;
        q1s.scaleFactor = scaleFactor*2;
        q1s.keepx = keepx;
        q1s.keepy = keepy;
        q1s.keepz = keepz;
        q1s.mod = (mod/2);
        q1s.noise = noise;
        //q1.renderer.material = renderer.material;
        q1s.parent = gameObject;
        q1s.cannotRevert = false;
        q1s.noisemod = noisemod;
        q1s.planetPos = planetPos;
        q1s.lowhold = lowhold;

        q2s.rad = rad;
        q2s.scaleFactor = scaleFactor*2;
        q2s.keepx = keepx;
        q2s.keepy = keepy;
        q2s.keepz = keepz;
        q2s.mod = (mod/2);

        q2s.noise = noise;
        //q2.renderer.material = renderer.material;
        q2s.parent = gameObject;
        q2s.cannotRevert = false;
        q2s.noisemod = noisemod;
        q2s.planetPos = planetPos;
        q2s.lowhold = lowhold;

        q3s.rad = rad;
        q3s.scaleFactor = scaleFactor*2;
        q3s.keepx = keepx;
        q3s.keepy = keepy;
        q3s.keepz = keepz;
        q3s.mod = (mod/2);

        q3s.noise = noise;
        //q3.renderer.material = renderer.material;
        q3s.parent = gameObject;
        q3s.cannotRevert = false;
        q3s.noisemod = noisemod;
        q3s.planetPos = planetPos;
        q3s.lowhold = lowhold;

        q4s.rad = rad;
        q4s.scaleFactor = scaleFactor*2;
        q4s.keepx = keepx;
        q4s.keepy = keepy;
        q4s.keepz = keepz;
        q4s.mod = (mod/2);
        q4s.noise = noise;
        //q4.renderer.material = renderer.material;
        q4s.parent = gameObject;
        q4s.cannotRevert = false;
        q4s.noisemod = noisemod;
        q4s.planetPos = planetPos;
        q4s.lowhold = lowhold;

        q1s.sq1 = q2;
        q1s.sq2 = q3;
        q1s.sq3 = q4;

        q2s.sq1 = q1;
        q2s.sq2 = q3;
        q2s.sq3 = q4;

        q3s.sq1 = q1;
        q3s.sq2 = q2;
        q3s.sq3 = q4;

        q4s.sq1 = q1;
        q4s.sq2 = q2;
        q4s.sq3 = q3;

        q1s.m_sun = m_sun;
         	q2s.m_sun = m_sun;
        q3s.m_sun = m_sun;
        q4s.m_sun = m_sun;

        q1s.groundfromspace = groundfromspace;

        q2s.groundfromspace = groundfromspace;

        q3s.groundfromspace = groundfromspace;

        q4s.groundfromspace = groundfromspace;

        q1s.splitCount = splitCount;
        q1s.timesSplit = timesSplit + 1;

        q2s.splitCount = splitCount;
        q2s.timesSplit = timesSplit + 1;

        q3s.splitCount = splitCount;
        q3s.timesSplit = timesSplit + 1;

        q4s.splitCount = splitCount;
        q4s.timesSplit = timesSplit + 1;

        q1s.planetMaker = planetMaker;
        q2s.planetMaker = planetMaker;
        q3s.planetMaker = planetMaker;
        q4s.planetMaker = planetMaker;

        q1.transform.parent = planetMaker.transform;
        q2.transform.parent = planetMaker.transform;
        q3.transform.parent = planetMaker.transform;
        q4.transform.parent = planetMaker.transform;

        q1s.planeObject = planeObject;
        q2s.planeObject = planeObject;
        q3s.planeObject = planeObject;
        q4s.planeObject = planeObject;

        q1s.groundFromGround = groundFromGround;
        q2s.groundFromGround = groundFromGround;
        q3s.groundFromGround = groundFromGround;
        q4s.groundFromGround = groundFromGround;

        q1s.planetInit = planetInit;
        q2s.planetInit = planetInit;
        q3s.planetInit = planetInit;
        q4s.planetInit = planetInit;

        }
        else
        {
            q1.SetActive(true);
            q2.SetActive(true);
            q3.SetActive(true);
            q4.SetActive(true);
        }
        hasSplit = true;

        beginTesting = true;
        gameObject.SetActive(false);
    }