Generation Procedural Voxel avec Perlin Noise

Fermé
kakesinfo Messages postés 34 Date d'inscription lundi 27 janvier 2014 Statut Membre Dernière intervention 9 novembre 2015 - Modifié par kakesinfo le 8/04/2015 à 20:15
kakesinfo Messages postés 34 Date d'inscription lundi 27 janvier 2014 Statut Membre Dernière intervention 9 novembre 2015 - 31 juil. 2015 à 16:01
Bonjour,

Après avoir fais un algorithme perlin noise (voir ci-dessous) à partir de cette vidéo: https://www.youtube.com/watch?v=NAvKS6uNmAs
J'aimerai réaliser le rendu final de la vidéo (le terrain) mais je ne c pas comment faire car je suis débutant et faute de documentation sur le web je ne trouva aucune réponse. Et les seul doc sont en c ou autres language: https://sites.google.com/site/letsmakeavoxelengine/

Voici la structure de mon projet:
GameMain (le fichier principal):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework;

namespace RealPrimal
{
    class GameMain
    {

        public GameMain()
        {

        }

        public void Update(MouseState mouse, KeyboardState keyboard)
        {

        }

        public void Draw(SpriteBatch spriteBatch, GameTime gameTime)
        {
            Terrain terrain = new Terrain();
        }
        
    }
}



La classe terrain:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;

namespace RealPrimal
{
    class Terrain
    {
        public static int NUM_CHUNKS = 16;

        public Terrain()
        {
            Perlin perlin = new Perlin(1990, 1000, 1000);

            for (int x = 0; x < NUM_CHUNKS; x++)
            {
                for (int y = 0; y < NUM_CHUNKS; y++)
                {
                    for (int z = 0; z < NUM_CHUNKS; z++)
                    {
                        double div = 64.0;
                        double val = (perlin.getPerlinNoise((float)(x / div), (float)(y / div))) * 128.0;
                    }

                }
            }
        }

    }
}



La classe Perlin (trop longue mais bien ^^):
https://paste.ubuntu.com/10774562/

La classe chunk:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace RealPrimal
{
    class Chunk
    {

        public static int CHUNK_SIZE = 16;

        public Chunk()
        {
      

        }

    }
}



Et la class Block:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework;

namespace RealPrimal
{
    class Block
    {

        public bool isActive;
        VertexPositionColor[] vertices;
        BasicEffect effect;
        int[] indices;

        enum BlockType
        {
            Default = 0,

            Grass,
            Stone,
            Snow,

            NumTypes
        }

        public Block()
        {

        }

        void setActive(bool active)
        {
            this.isActive = active;
        }
    }
}


Merci de votre aide :)
A voir également:

1 réponse

kakesinfo Messages postés 34 Date d'inscription lundi 27 janvier 2014 Statut Membre Dernière intervention 9 novembre 2015
31 juil. 2015 à 16:01
Up :)
0