Message #10797
Sujet: Avoir la main verte
| Type | Date | Auteur | Contenu |
|---|---|---|---|
| Dernière modification | 22-09-2012 19:32:36 | johnplayer |
Serait-il possible de faire une image pour explication parce que j'ai vraiment compris ton problème.
Tu veux créer de l'herbe en 3D ou juste modifier la texture du sol pour qu'elle passe de de la "couleur terre" à la "couleur herbe", si c'est ce dernier cas avec les shaders c'est simple. Tu prends 3 textures : 1 pour le sol originel, 1 pour l'herbe et la 3ème indiquant la texture à prendre en compte. Les shaders ne sont pas compliqués pour des rendus de base. Il te suffit de mettre les 3 textures dans le matériau de ton node, de les récupérer dans ton shader (j'avais fait un topic sur les shaders qui montrer un exemple). Ensuite, tu teste le texel sur la 3ème texture et tu en déduis le texel de quelle texture (entre la 1 et la 2) affichée. Ton shader devrait faire 25 lignes à tout casser (PS et VS). Je pense que les particules serait trop gourmandes en ressources, enfin, tout dépends tes attentes. Mais saches qu'une particule c'est 2 triangles sur 1 node et Irrlicht est fait pour afficher peu de node avec beaucoup de triangles. Si tu veux faire de l'herbe en 3D, il serait mieux de faire ton propre SceneNode (dérivé de ISceneNode). Tu peux ainsi accéder au buffer et créer des triangles et les texturer afin de faire pousser de l'herbe. Pour la gestion, tu peux faire un truc simple, genre tu créés une structure pour une touffe d'herbe par exemple : Code c++ :Ensuite, afin de gérer tes touffes d'herbe, tu créés un array<TouffeHerbe> ce qui te permet de créer, supprimer ou modifier la taille de ton herbe. Après ce n'est qu'un principe de base, il te faudra l'accorder à ta vision des choses. Edit : Si tu choisis la solution du ISceneNode, il serait bien de créer un nouveau topic dans la section "Meshs" (afin de respecter le système de section que le webmaster à mis en place) et de mettre le lien vers ce nouveau topic dans celui-ci (afin de faire le lien entre les 2 discussions). |
| Création du message | 22-09-2012 19:26:00 | johnplayer |
Serait-il possible de faire une image pour explication parce que j'ai vraiment compris ton problème.
Tu veux créer de l'herbe en 3D ou juste modifier la texture du sol pour qu'elle passe de de la "couleur terre" à la "couleur herbe", si c'est ce dernier cas avec les shaders c'est simple. Tu prends 3 textures : 1 pour le sol originel, 1 pour l'herbe et la 3ème indiquant la texture à prendre en compte. Les shaders ne sont pas compliqués pour des rendus de base. Il te suffit de mettre les 3 textures dans le matériau de ton node, de les récupérer dans ton shader (j'avais fait un topic sur les shaders qui montrer un exemple). Ensuite, tu teste le texel sur la 3ème texture et tu en déduis le texel de quelle texture (entre la 1 et la 2) affichée. Ton shader devrait faire 25 lignes à tout casser (PS et VS). Je pense que les particules serait trop gourmandes en ressources, enfin, tout dépends tes attentes. Mais saches qu'une particule c'est 2 triangles sur 1 node et Irrlicht est fait pour afficher peu de node avec beaucoup de triangles. Si tu veux faire de l'herbe en 3D, il serait mieux de faire ton propre SceneNode (dérivé de ISceneNode). Tu peux ainsi accéder au buffer et créer des triangles et les texturer afin de faire pousser de l'herbe. Pour la gestion, tu peux faire un truc simple, genre tu créés une structure pour une touffe d'herbe par exemple : Code c++ :Ensuite, afin de gérer tes touffes d'herbe, tu créés un array<TouffeHerbe> ce qui te permet de créer, supprimer ou modifier la taille de ton herbe. Après ce n'est qu'un principe de base, il te faudra l'accorder à ta vision des choses. Edit : Si tu choisis la solution du ISceneNode, il serait bien de créer un nouveau topic dans la section "Meshs" (afin de respecter le système de section que le webmaster à mis en place) et de mettre le lien vers ce nouveau topic dans celui-ci (afin de faire le lien entre les 2 discussions). |
| Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
|---|---|---|---|---|
|
Préférences cookies Corrections |
![]() ![]() ![]() ![]() |
Propulsé par Django xhtml 1.0 css 2.1 |
884 membres 1440 sujets 11337 messages |
Dernier membre inscrit: Saidov17 232 invités en ligne membre en ligne: - RSS Feed |