1

C'est un peut rare comme utilisation de moteur, mais j'aimerais bien en créer un, donc si vous avez une "logique" ou une "méthode" pour la création d'un moteur en cell shading, je suis preneur...parce que je capte pas trop le principe...

Si vous connaissez un moteur open source, je prend aussi, ptet que je comprendrait le principe de fonctionnement.

Il aprait que c'est moins gourmand qu'un moteur 3D "normal", j'aimerais entendre une confirmation sur ce point la, merci a vous.

XIII.jpg

Tiré du jeux XIII

Sachant que je veux le créer sans openGL, only C/C++ et ptet SDL(mais bonb, pas très util dans ce cas précis)
TI-NSpire Pwned !

Thx ya all...thx ExtendeD.

...The rebirth of the community...

2

http://www.gamedev.net/reference/programming/features/celshading/

J'en ai trouvé un en anglais basé sur openGL...pas génial
TI-NSpire Pwned !

Thx ya all...thx ExtendeD.

...The rebirth of the community...

3

avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

4

merci...c'est basé sur opengl, mais c'est déja pas mal...

C'est chiant, tout le monde se base sur des libs...
TI-NSpire Pwned !

Thx ya all...thx ExtendeD.

...The rebirth of the community...

5

Ben tu veux faire quoi d'autre, tu tiens vraiment à te tapper l'écriture d'un driver pour carte 3D ?

6

Mais non, faire un jeu qui tourne a 10fps sur une bécane de fou, c'est class !

7

il veut peut-etre le faire en directx ?

mais si c'est pour le faire en software, je crois que t'aurais du attendre un peu avant de creer une entreprise trioui

8

S'il veut le faire en DX? il me semble que le cell shading fait parti des ext ogl, donc ca doit etre dispo sous DirectX

9

de toutes facons j'ai l'impression qu'il sait pas du tout ce qu'il veut faire grin

10

Je sais ce que veux faire...je veux le faire sur console portable, donc a prt SDL et un pseudo port de tynigl foireux y'a rien...donc c'est tout, c'est pour ca que je peux pas me basser sur des tuto opengl, voila

C'est pour ca aussi que je demande si c'est plus gourmand ou non, qu'un moteur de rendu dit "normal", voila...

J'aimerais me faire un petit jeux en cell shading, c'est tout, si c'est pas faisable je laisse tomber, mais je pense que c'est faisabe...avec beaucoup de boulot, mais faisable...
TI-NSpire Pwned !

Thx ya all...thx ExtendeD.

...The rebirth of the community...

11

il veut peut-etre le faire en directx ?
Parce que directx c'est pas une lib ? tongue
Remarque ça expliquerait des choses grin

iceman> soyons clairs : si tu veux faire un truc un minimum décent tu seras obligé de passer par le je sais pas quoi là tinygl. Sinon tu devras faire le rendu en logiciel, et là tu peux t'attendre à des performances catastrophiques

12

a mon avis c'est beaucoup plus gourmand qu'un moteur normal étant donné que si tu passe pas par des shaders (donc sur console portable je pense pas que ca soit possible (ou peut etre sur psp)) tu dois faire le rendu normalement puis tu dois faire une seconde pass pour calculer la lumiere reçue par chaque fragment pour seuiller clair/foncé et puis calculer les fragments de la silhouette (d'apres ce que j'ai compris sur le cell shading)
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/

13

spectras
:
il veut peut-etre le faire en directx ?
Parce que directx c'est pas une lib ? tongue
Remarque ça expliquerait des choses grin

iceman> soyons clairs : si tu veux faire un truc un minimum décent tu seras obligé de passer par le je sais pas quoi là tinygl. Sinon tu devras faire le rendu en logiciel, et là tu peux t'attendre à des performances catastrophiques

Y'a pas forcément de chip graphique sur la plateforme qu'il vise grin
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

14

iceman :
Je sais ce que veux faire...je veux le faire sur console portable, donc a prt SDL et un pseudo port de tynigl foireux y'a rien...donc c'est tout, c'est pour ca que je peux pas me basser sur des tuto opengl, voila

ca il aurait fallu le dire dans ton premier post, voila tongue

15

De toutes façons c'est forcement faisable. Tout est faisable depuis qu'on peut reprogrammer les shaders (programme sur les vertex et pixels exécutés par la carte graphique).

Ci-dessous un schema de la suite des opérations pour obtenir un rendu.
pipelinegr.gif

Soit ta lib graphique et ta carte graphique permettent de faire du cellshading. Sous gl ça devrait-être GLCellShading(true) grin nan ?
Soit tu le reprogrammes à partir d'un algo (si tu as la flemme de le trouver).
What kind of technology is this?

16

Y a pas de gpu sur la gp2x...et puis dans mon premier post j'ai dit que je veux pas me baser sur des libs, c'est pourtant simple...

Justement, un algo, ca me ferais bien triper, mais pour ca il me faudrait la "methode" du celle shading...parce que je vois pas trop comment faire...
TI-NSpire Pwned !

Thx ya all...thx ExtendeD.

...The rebirth of the community...

17

Galmiza :
Sous gl ça devrait-être GLCellShading(true) grin nan ?

Oui bien sûr, tu peux même appeller glCodeMoiUnJeu(GL_VITE, GL_ET_BIEN) ^^
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

18

Y a pas de gpu sur la gp2x...et puis dans mon premier post j'ai dit que je veux pas me baser sur des libs, c'est pourtant simple...
Donc tu ne veux pas utiliser le driver pour l'affichage ?
Tu veux contrôler toi même les éventuels contrôleurs DMA et accéder aux ports d'I/O des composants matériels ?

19

Et pourquoi pas ? happy
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

20

Edited_3596

21

Orion_ :
donc pas d'acceleration hardware donc pas de port io a controller, du moment que tu peu afficher un pixel c'est bon ...


Et pour écrire sur l'écran, utiliser les DMA, contrôler les timers et les interruptions, lire les boutons, le joystick, synchroniser les deux processeurs, tu penses qu'il n'y a pas de ports à contrôler non plus ? happy
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

22

Edited_3597

23

Merci Orion, enfin un qui à compris...

Et Ximoon, j'ai pas dit codé moi un jeux, je demander la méthode du cell shading rien de plus...


Orion> Pour le moeur 3d, c'est pas "trop" un souci, mais j'aimerais connaître la méthode du rendu du cell-shading, la recette en fait....

Merci a vous, pour votre aide...et merci d'être tout de suite vachement positif.
TI-NSpire Pwned !

Thx ya all...thx ExtendeD.

...The rebirth of the community...

24

La méthode, comme tu dis, elle est décrite dans les tutos indiqués dans le thread.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

25

Zephyr
:
Galmiza :
Sous gl ça devrait-être GLCellShading(true) grin nan ?

Oui bien sûr, tu peux même appeller glCodeMoiUnJeu(GL_VITE, GL_ET_BIEN) ^^

En même temps, pour son GLCellShading, il suffit d'avoir un vertex buffer et un petit rendu tout simple apparement...

26

mais le monsieur te dit que y'a pas de gpu
Voir réponse de Ximoon ^^
je parlais d'une lib plus specialisée, il utilise SDL, mais pas opengl, donc pas réellement de driver dans ce cas la
J'ai l'impression qu'il y a quelques confusions sur ce qu'est SDL...

27

La technique pour faire du cel-shading :

calcul tout a fait normal de l'éclairage :
- vecteur lumiere * normale pour l'eclairage diffus
- et bissectrice(vecteur lumiere+vecteur camera) * normale pour eclairage spéculaire.

A ca tu appliques des tableaux de shaders : soit des valeurs de seuil pour l'eclairage trouvé, exemple pour une eclairage entre 0.0 et 0.3 tu prends 0.3, entre 0.3 et 0.6 tu prend 0.5 etc... de maniere a avoir des differences flaggrante entre les différents niveaux d'ombrage
tu peux ensuite tout melanger pour obtenir la couleur désirée : Out.couleur = In.couleur * (diffuse + speculaire); si tu veu texturer en plus tu peu multiplier le tout par la couleur de la texture
Avec ca tu auras un rendu cel-shading sans contours. A savoir que ce genre de rendu est en effet plus rapide en général parce que les textures pour du cel-shading sont tres simple (trop de detail tue le cel-shading), mais concraitement c'est exactement pareil qu'un rendu normal.

Pour faire les contours, apres avoir testé beaucoup de méthodes, celle qui donne les meilleurs rendu est de faire un dessin en 2 passes.
La premiere passe pour les contours ou en fait tu vas dessiner les parties non visibles de ton objet en fil de fer avec de gros traits noirs. Pour savoir si une face n'est pas visible, tu regardes si elle a été déssiné dans le sens trigo ou pas (prod vectoriel de deux coté positif ou pas). perso comme je prog en Opengl je fais tout simplement un glEnable(GL_CULL_FACE)
Et enfin une deuxieme passe avec la technique du dessus.

J'ai pas trop compris comment tu veux developper ca mais concraitement si tu sais faire un moteur 3D ya aucune raison que tu ne puisses pas le faire...c'est 5min de boulot en plus dans le developpement d'un moteur3D ^^
Pour les tutos basés sur opengl ou directx c'est tres comprehensible si tu as des notions de 3D...ces deux librairies sont principalement des drivers pour carte graphique, et les concepts 3D des cartes graphiques sont ceux utilisés par tout moteur 3D et meme le monde de la 3D de maniere générale

vala, bon code ^^

28

si tu as acces aux shaders, ce sera nettement plus lent de dessiner les contours en faisant un rendu en fil de fer...
et surtout, en GL, la taille des lignes n'est pas dependante de la distance, du coup en pratique, cette methode est horrible...
tout ce que t'as a faire, c'est:

glEnable(GL_CULL_FACE); // ca de toutes facons pour des objets fermes opaques ca devrait toujours etre active
glCullFace(GL_FRONT);

{
rendu de l'objet entier, tout en noir (ou plutot, de la couleur de ton contour, avec eventuellement des variations de couleurs au sein meme de l'objet, selon l'effet desire), avec un vertex shader qui deplace les vertex le long de leur normale d'une valeur fixe, qui correspondra a la taille de tes contours.

un truc tout con du genre:

out_pos = in_pos + in_normal * border_thickness;
(avec border_thickness un truc du genre ... 0.3 par exemple, si ton objet fait 10 unites de haut...)
}

glCullFace(GL_BACK);

{
rendu de l'objet comme l'a decrit IronMan. si tu as acces a des pixel shaders, ou des vertex shaders >= SM 3.0, tu peux passer directement par une texture 1D pour les degrades de couleurs de ton eclairage. et tu l'indexe juste avec le produit scalaire entre la normale et le vecteur qui va jusqu'a la lumiere, normalise entre 0 et 1.

un autre truc tout con du genre:

float3 to_light = normalize(light_pos - in_pos);
float dot = in_normal * to_light * 0.5 + 0.5;
float3 shade = sampler1D(cel_shading_gradient_texture, dot);
float3 color = sampler2D(model_texture, in_uv);
return (color * shade * light_color);
}


EDIT: ah merde... un up de 2 mois... pas fait gaffe dsl >_< pastaper... sad
avatar
HURRRR !

29

si, taper fouet !

30

mmoh ouiii!!!!!!! love
• momotte court upper plein de vieux topics love
avatar
HURRRR !