CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

~'-= Programmation 3D =-'~ (4 3D coderz)

News jeu

Expeditions: Samurai veut révolutionner le RPG tactique avec une aventure entièrement jouable en coop

Voir
ff7cloudcid
ff7cloudcid
Niveau 2
18 août 2002 à 15:19:57

Voila, je vais me mettre a la programmation 3D (pour creer le moteur de mon RPG), et apres avoir fait le tour des principaux site (opengl.org, nehe, gametutorials, gamedev, gamasutra), il y a pas mal de points qui me sont restés obscurs (peut etre des questions de n00b, j´en sais rien)

1# Quels sont les avantages et les inconvenients des data structures : octrees, binary space partition tree, et constructive solid geometry. Le Z-buffer est seulement esthetique ou il peut etre utilisé a des fins d´hidden surface removal ? Qu´apportent reelement les portals ?

2# Le "grand" point de la rapidité d´un moteur 3D est vraiment l´hidden surface removal ? Existe t´il d´autres techniques que les data strucutres en #1 et les portals pour remedier a cela ? J´ai vu sur un site que 2 compagnies avaient créé des algos de HSR "0 loss", qui ne calculaient que ce qui etait visible : info ou intox ?

2# Je sais qu´on peut utiliser la CSG + portal + BSP. mais peut ont utiliser CSG + portal + octrees ? Quelle est l´equation la plus beneficiaire en ressources (je sais que ca depend beaucoup de la qualité des algos, mais il doit qd meme y avoir une difference)

3# Est-ce vraiment realiste d´utiliser des highlights dynamiques en permanence (cf doom III), ou il vaut mieux faire une classe higlights_base qui comporte dynamic_highlights et static_highlights ?

4# OpenGL pour le graph, GLUT pour les fenetres, OpenAL pour l´audio... qu´existe t´il encore comme grande librairie "d´open" ?

5# Un resumé (dans les tres tres grandes lignes) de la creation d´un moteur 3D ?
1. on cree les classes principales (world, sector, polygon, pixel)
2. on y implante les data structures (BSP, portals, CSG)
3. on créé une classe qui contient tous les objets (cameras, HUD, menus... on cree un langage scripté si necessaire)
4. on créé les modules ´exterieurs´ (audio, etc...)
5. on créé l´editeur de niveau
6. on créé le jeu
7. on se repose ; -)

Je sais qu´il n´existe pas de "manuel_du_moteur_3D", mais au moins, de l´aide dans les grandes lignes ? (ca figure NULL_part sur le net)

6# Vous avez des projets de moteur 3D ? (j´ai vu sur ce forum exhlino en version 0.1, bon courage dude ! )

7# Ils embauchent des stagiaires chez codecult ? ; o)

Merci d´avoir lu jusque la, have fun & be fair ! !!

ps: desolé pour le premier post, c mon frere qui a tapé ce que je lui ait dicté !

Lightness1024
Lightness1024
Niveau 10
19 août 2002 à 10:34:32

ta oublié neXe ! fait une recherche sur google.

1:
avantages:
de l´octree: simple rapide a constituer
BSP: plus optimisé ke l´octree peut permet la
constitution d´un PVS (potentialy visible set)
CSG: supprimer les polygones aux intersections des solides en cas d´utilisation de la fonction "union"

inconvenients
octree: pas tres efficace (on peu l´utiliser uniquement pour la detection des collisions par exemple)
BSP: moi g rien pigé
CSG: ca augmente le polygon count contrairement a son but.
Z-Buffer: bien evidemment ke c´est utilie, c´est meme obligatoire c´est la seule technique correcte qui permet de ne pas afficher les objets qui sont derriere d´autres objets, sans ca et bien tu verrais a travers certains polygone de maniere tout a fait aléatoire (en fonction de l´ordre dans le VertexBuffer)
portal: c´est la technique de duke nukem, c´est un vieu truc ki est assez compliké a faire et ki permet d´afficher réelement uniquement les polygones en vue (pas besoin de Z-Buffer) ca a été inventé a l´epoque ou les Z-Buffer n´existaient pas, c un trux recent !

note: il existe des variantes comme le quadtree etc.. qui sont plus efficaces.
la CSG na rien a voir avec une technique de space partitionning

2:
pas vraiment tu as bien pu voir ke dans 3D mark on fait des scenes avec des 100000 polygones et ke ca rame pas trop le problemed d´un moteur ne vient pas du nombre de polygones a afficher, il vient de l´optimisation de son code a operer la detection des collision, la physique des mouvements et tout le reste.
0 loss ca peut exister mais sans grand interet.

2 bis: bien sur CSG on peut l´utiliser avec tout ca n´agit ke sur les polygons, portal et octree oui, onutilise le protal pour l´affichage et l´octree pour la detection des collisions par exemple.
je peu pas te dire le meilelur melange.
si tu commence a partir dans des melanges t´en a pour 6 ans de programmation.

3:
pour faire des lampes dynamiques rien ne vaut les lampes gérées par l´API mais attention ca passe a travers le murs donc fo pas en mettre partout et ca fait ramer.
pour faire des lampes statiques c´est bien plus pratique car on peu utiliser les lightsmap et faire nous meme notre algo d´eclairage (comme half life) et dans ce cas on peu faire qqch ki s´arrete contre le murs (et donc projete des ombres) qui peut reflechir sur les surfaces en fonction de la couleur (la radiosité) etc etc..
mais ca ne doti se faire ka la compilation car ca prend 10 minutes pour une grande map ya ka voir les zoners half life tools combien ca prend de temps.

4: j´en sais rien mais ne te fixe pas sur l´open tu va pas essayer de comprendre comment est programmé opengl kan meme ? la seule chose ou il fo s´attarder c´est la portabilité si ca t´importe, je sais ke de mon coté j´ai preferé DirectX parce ke windows est deja une grande cible et qu´il est bien plus agréable a programmer.

5: dans on créer le jeu ya kan meme 50\% du travail. ta oublié l´eclairage dans ta liste.
et autre chose: on fait l´editeur de niveaux en premier. mais je te conseille d´en prendre un deja existant (si tu connai bien le format generé bien sur) par exemple moi j´utilise le format . map bien sur on peut pas faire des trucs tres compliké mais ca me suffit. le probleme avec ce format c´est kon a pas tout les polygones, on a seulement les plans des solides (qui sont forcement convexes) donc on doit extrapoler pour trouver les faces et ca ma pris 2 moi pour faire un algo efficace : (

cherche sur gamasutra, flip code etc..

pour codecult: reve pas :)

ff7cloudcid
ff7cloudcid
Niveau 2
19 août 2002 à 10:51:29

Merci d´avoir repondu !

4. j´ai surtout envie de porter sur linux, et vu qu´il gere openGL, ca sera plus facile que de modifier le moteur qui vient de directX !

bah, c tout... ;-)

ff7cloudcid
ff7cloudcid
Niveau 2
19 août 2002 à 10:55:18

Pour le format de map sinon, effectivement ca me semble un peu dur a creer editeur + format + plugin pour convertir (importer les models etc...). J´utiliserai le format de BSP de quake 3 avec des lightmaps ameliorées et des heightmaps + mipmap ou un terrain qui gere le ROAM (fo des bô decors pour le RPG ; -)

ah aussi pour ceux qui auraient pas remarqué, le premier post c´etait une BLAGUE (ptet pas marrante, mais bon... :p)

ff7cloudcid
ff7cloudcid
Niveau 2
19 août 2002 à 12:33:15

je vois ;o)

Trapamoosch
Trapamoosch
Niveau 5
19 août 2002 à 13:16:28

Quelques précisions sur les remarques de Lightness1024 :

1) Je ne sais pas si l´octree est aussi bon pour la détéection de collsion, en tout cas les BSP semblent l´être (enfin d´après ce que j´en ai lu). Si j´ai bien compris le principe des BSP (je dis peut-être carrément n´importe quoi), c´est dichotomique. Tu coupes ta scène en deux avec un plan, puis les deux autres morceaux restant encore en deux etc etc... Et après, tu testes ta caméra par rapport au plan, et tu sais ce qu´elle voit (idem pour la détection, par dichotomie on arrive rapidement à savoir où on est dans la scène).

Les CSG c´est plutot pour les modeleurs, dans un moteur 3d, c´est pas la bonne solution pour enleveer des polys (au contraire).

Le ZBuffer est maintenant cablé en hard, et oui, il est très important, il permet notamment pour nous autres feignasses d´éviter de devoir trier les polygones par ordre de profondeur (a par bien sur les polygones transparent utilisant un blending autre qu´additif).

Les portals sont un pou chiant à comprendre, mais ça a l´air assez puissant quand même.

2)Ben un moteur ça s´optimise, masi faut bien dire que le but du jeu, c´est de pouvoir avoir les scènes les plus immenses possibles, tout en gardant une rapidité correcte. Et là, y´a pas de secret : faut rendersier que ce que l´on voit, pas plus, pas moins. Le seul problème, c´est qu´a force de voiloir faire la chasse aux polygones invisibles, on finit par tomber dans l´excès, et on perd finalement plus de temps à faire les occlusions qu´aà renderiser, ce qui est somme toute assez ridicule. Donc il faut savoir faie la part des choses, et si 500 ou 1000 polygones passent à travers les mailles du filet, c´est pas forcément la catastrophe.

Et autres astuces : toujours sauvegarder l´état du moteur entre chaque frame. Par ex, si un objet n´était pas visible, et si depuis, la caméra n´a pas bouger et l´objet non plus, alors il est toujours invisible. Donc pas besoin de recalculer ça. Enfin vous voyez le principe.

3) Les highliths dynamiques tout le temps, non, c´est pas une bonne idée, et puis pkoi se servir d´une light dynamique si pour simuler une lampe qui ne bouge pas et qui éclaire des objets qui ne bouge pas non plus ?
Maintenant attention, Doom 3 c´est pas du moteur de tafiole, et il utilise (enfin d´après les screenshot que j´ai vu), le per-pixel lighting. J´ai un peu la femme de vous expliquer le principe, mais au lieu de calculer une intensité lumineuse par vertex, on le fait par pixel. Tout ça passe par des modes de texturages (comme les textures Dot3 quu permettent de faire un produit scalaire par pixel, utile pour le bump map par exemple). J´ai vu des exemples tourenr chez moi, c´set très joli, et oui, ça fout une claque dans la gueule quand on voit un objet éclairé comme ça.

4) Euh y´a DevIL (www.imagelib.org), pour charger/sauver tous les formats d´image les plus usités, super pratoche et simple d´accès (avec les source en prime).

5) Ca je sais pas, je fais pas de jeu moi : )

6) Oui, un petit moteur 3d avec rendu en cel-shading (qui est un peu en pause pour le moment, mais ça c´est ma flemme légendaire : )

--------------------------------------------------

En tout cas, faut pas se leurrer, faire un (vrai) moteur 3d bien balèze, c´est pas simple. Personnellement, j´en ai marre de voir des moteur 3d aseptisés, sans gouts, qui renderisent tous pareils, avec tous les mêmes trucs et qui se targuent de jolis screenshots. Il faudrait que les gens codent des moteurs 3d pour renderiser ce qu´ils veulent, et non pas qu´ils fassent des scènes pour renderiser ce qu´ils peuvent...

J´ai vu des démos assez sympatoches (voire franchement terrible), avec des moteurs 3d minimalistes. Tout est une question de gouts après, et de design

ff7cloudcid
ff7cloudcid
Niveau 2
19 août 2002 à 13:29:46

De ce que j´ai compris du BSP c´est : on coupe la scene en deux et on determine si on est d´un coté de le l´autre de l´arbre. On recoupe la partie ou on est en deux et on re-determine etc... C pas ca ? !
Si j´ai evoqué la CSG c´est parce que l´unreal engine est basé dessus (CSG + BSP + portal rendering : )

Si je voulais rasterizer ce que je voulais, ca serait les scenes que j´ai sous maya, donc... fo faire des concessions ;o)

Trapamoosch
Trapamoosch
Niveau 5
19 août 2002 à 14:05:19

Wai les BSP c´est ça, c´est de la dichotmoie koi : )

Sinon oui, les cènes Maya avec 500000 polys, oublie :)

LcData
LcData
Niveau 6
20 août 2002 à 14:49:19

Moi je te conseil d´ acheter des livres sur el sujet .
voici une petit list

Mathematics for 3D Game Programming & computer Graphics.
De Eric Lengyel.
Edition Charles River Media. ISBN: 1-58450-037-9.

OpenGl 1.2
De Mason Woo, Jackie Neider, Tom Davis, Dave Shreiner.
Edition Campus Press Référence. ISBN: 2-7440-0841-9.

Le Langage C++.
De Bjarne Stroustrup.
Edition Campus Press Référence. ISBN : 2-7440-1089-8.

Programmation Graphique c/c++ Assembleur.
De Michael Abrash.
Edition Sybex. ISBN: 2-7361-3415-6.

OpenGl game programming.
De Dave Astle et Kevin Hawkins.
Edition Book&. ISBN: 0-7615-3330-3.

Physics for game developers
Edition Oreilly. ISBN : 0-5960-0006-5.

Game programming gems
Charles River Media
Edition Mark DeLoura ISBN : 1-58450-049-2

Game programming gems 2
Charles River Media

Game programming gems 3
Charles River Media

dans ces livres tu trouveras des articles et des explication sur tout les techniques

si tu cherche un moteur open source tu peux tjrs aller voir le mien

Data
www.ploksoftware.org

maskware
maskware
Niveau 8
20 août 2002 à 15:19:33

(c moi cloud)

Ben en fait j´ai beaucoup regardé les autres moteurs, et je pensais m´arreter sur l´unreal warfare mais il n´etait pas assé adapté au script (du moins dans la version d´unreal T. 2003). J´ai donc regardé Ogre, Crystal Space, Genesis... et aucun m´a convenu, il me faut quelque chose qui gere les interieurs/exterieurs avec une bonne implementation des phenomenes de script (comme half life).

Donc je vais partir de zero ; -). Et en attendant d´apprendre, je suis avec la team crystal. Merci pour la liste des livres, je projettai de commander game programming gems 1/2 et 3D Engine design ! Je pense que ca devrait etre suffisant !

LcData
LcData
Niveau 6
20 août 2002 à 15:54:40

yep bon choix

donc te voila partit comme moi . Bonne chance pour la creation de ton moteur 3d si toute fois tu as besoin de source le mien se trouve sur www.ploksoftware.org

Data

Lightness1024
Lightness1024
Niveau 10
20 août 2002 à 20:24:49

on voit tout de suite le pro-OpenGL. : )
pour moi c l´esprit linuxien ca.

LcData
LcData
Niveau 6
21 août 2002 à 13:40:08

hihi promis un jour je ferais un moteur directx
mais la je me suis lancer dns l opengl alors je fonce .

Data

Lightness1024
Lightness1024
Niveau 10
21 août 2002 à 20:43:12

oui oui fait, c pas moi ki va te prescrire le contraire.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware