Historique des modifications - Message

Message #11814

Sujet: Changer la coloration de la texture d'une skybox


Type Date Auteur Contenu
Création du message 22-05-2017 23:37:06 Magun
bon c'est vrais que ton pc n'ai vraiment pas adapter pour dev surtout de la 3D

Pour ce qui est de ton code, essaye de me préparer une démo simple, minimal et propre, qui ne prend que les aspects utiles a ton problème
par ce que moi la, j'arrive dans ton code : entres les différentes erreurs de syntaxe c++ et l'organisation du code ça devient difficile à comprendre et je n'ai pas le temps de tout réécrire:

1) ta essayer de faire du bump mapping ? pour l'instant je voie un gros "paté" au millieu de la carte avec des couleurs chelou qui ressemble a une texture de normal ... -> ????
2) trouver pourquoi je n'ai pas d'eau -> ah ! c'est commenter dans CMapCore
3) bon j'ai de l'eau mais le rendu est horrible -> erreur de matrice ? mauvais shader ?
4) pourquoi y a pas de transparence ? a quoi correspond la skydom étrange au millieu ? les particules ?

alors oui ça compile, mais même à l'execution je ne comprend pas ce que je voie, entre ce que ta essayer de faire, et le rendu final je preçois une intension,
mais je ne suis pas sur si c'est voulu, ou des erreurs, ou irrlicht, ou ma machine ...
c'est pas pratique et ça me prend du temps (par exemple un post comme celui-ci me prend environ 1h40 sans parler du code et de la doc)

mais honêtement tu ne pourras pas gagner plus de performance si tu veut garder un rendu "equivalent",
la seul solution c'est évidement d'enlever la reflexion c'est tout, et c'est très gourmant par ce que irrlicht n'est pas adapter

le soucis vien entre autres du rendu du scenemanager en changent la camera de place
à chaque itération il a besoin de recalculer les transformations, de retrier les objets par distance et ça deux fois, la ça va
mais le pire, c'est le terrain, il ne met pas en caches ces informations et ne ce base que sur la distance de la caméra -> donc il doit recalculer le niveau de détail en permanance ce qui est très couteux

donc en fonction de ce que tu veut gagner -> en général on laisse le joueur choisir en fonction des performances de sont pc
  • soit tu fait pas de reflexion,
  • soit tu fait une reflexion uniquement de la skydome (ta météo)
  • soit tu desactive le shader du terrain et tu fait un rendue avec un niveau de détail très bas et tu désactive le rendu des petits objets
  • etc


premier solutions: pour faire ça, je ferais un filtre basé sur ILightManager comme ça ta différent choix (reflexion du skydome, des objets transparent, du shadow, .... etc) et pratique avec OnRenderPassPreRender/OnNodePreRender/OnNodePostRender/OnRenderPassPostRender
deuxième solution: ISceneManager est en fait un CSeneManager qui lui mếmé dérive de ISceneNode, donc du coup tu peut crée un ISceneNodeAnimator qui filtre @Children pour désactiver le rendu de certain node et faire un rendu de la reflexion avans le rendu de la scene "normal"
troixième solution: tu écrit un shader spécial que tu applique partout qui te permet de crée une caméra virtuel différente de irrlicht qui te permetra de changer la position sans impacter les performances dans le cas ici présent une frame sur deux (pour la réflexion)
tu copie donc simplement la matrice de la camera d'irrlicht que tu rebricole au besoin

il y a plien d'autres solutions possibles !

sinon ba il faut ce pencher sur des techniques beaucoup plus avancer avec des optimisations dont tu n'a pas encore le niveau et dont les limites d'irrlicht ne permet pas sans une réécriture partiel

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
154 invités en ligne
membre en ligne: -
RSS Feed