2013-07-11 1 views
2

J'essaie de générer aléatoirement un terrain dans un style low-poly similaire au terrain vu dans Cube Slam et this video. J'ai essayé d'expérimenter avec l'exemple de webgl_geometry_terrain.html, mais il génère toujours un terrain relativement lisse, contrairement aux polygones plats qui constituent mon terrain.Générer aléatoirement du terrain low-poly

Je ne fais que commencer par Three.js, donc il est tout à fait possible qu'il y ait une solution plutôt simple à mon problème.

Répondre

1

Jetez un oeil à http://threejs.org/examples/canvas_geometry_terrain.html il semble faire assez bon terrain aléatoire.

+0

Je fait référence à un exemple similaire ci-dessus (webgl_geometry_terrain.html). Ils sont tous les deux fondamentalement identiques sauf que mon exemple utilise WebGL. Ce que j'essaie de faire est d'éliminer le lissage de la trajectoire et de le faire simplement générer un terrain avec des polygones plats et droits, comme les deux exemples. – agg23

+0

Avez-vous déjà été capable de résoudre ce problème? J'expérimente avec three.js et j'essaie d'opter pour un effet low poly similaire. J'ai été capable d'obtenir le dessin de terrapin en utilisant une couleur plate en modifiant leur fonction generateTerrain mais j'essaie d'obtenir les visages en fonction de leur angle par rapport à la lumière. Avez-vous déjà été capable de trouver d'autres ressources? –

+0

@RickyHartmann juste au cas où vous n'avez jamais résolu cela, voir ma réponse. – JoeRocc

0

très simple, il suffit d'utiliser THREE.FlatShading (edit: et geometry.computeFaceNormals()):

var geometry = new THREE.BoxGeometry(2, 2, 2); 
var material = new THREE.MeshLambertMaterial({ color: 0xdddddd, shading: THREE.FlatShading }); 
geometry.computeFaceNormals(); // <-- I think you'll need this if you're doing terrain (as opposed to built in geometry like BoxGeometry) 
var mesh = new THREE.Mesh(geometry, material); 
scene.add(mesh); 
Questions connexes