Raydium 3D Game Engine

Official forum for everything about Raydium, ManiaDrive, MeMak, ...
It is currently Sun Apr 28, 2024 5:01 am

All times are UTC




Post new topic Reply to topic  [ 11 posts ] 
Author Message
 Post subject: plus de 8 lampes
PostPosted: Sun May 29, 2005 9:52 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Bonsoir,

J'ai remarqué une limitation de raydium causée par OpenGL: la limitation des 8 lumières (constante MAX_LIGHTS).

D'abord, j'aimmerais savoir si la limitation est de 8 ou 9 lumières car il semble que les fonctions raydium_light* utilisent des identifiants de 0 à 8 inclus.

Ensuite, j'aimmerais bien savoir si il est possible de contourner cette limitation. Car je vois mal comment on peut faire un monde 3D complet avec seulement 8 lumières.
Peut être la solution serait de désactiver les lampes éloignées de la caméra automatiquement, mais ce n'est certainement pas quelquechose de simple a faire ...


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 31, 2005 9:17 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
On parle ici de 8 lampes "temps réel", pour l'éclairage dit dynamique.
En général, on ne place qu'une ou deux lampes dynamiques (pour le soleil, par exemple) pour donner un éclairage ambiant, qui possède la capacité d'évoluer avec le temps (position et couleur, en général).
Tout le reste de la scène est éclairé par des lightmaps, dont le rendu est statique, mais génère des ombres.
Utiliser 8 lampes matérielles est quelque chose de très très rare (et le matériel en question n'est pas prévu pour ça, en général, ce qui engendre des performances affreuses).


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jun 01, 2005 7:10 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Les lightmaps c'est avec FsRadRay, non ?

Cela me gêne un peu car FsRad(Ray) n'est disponible que pour Windows. Et si le logiciel fonctionne sur linux, ce n'est que sur x86 avec Wine.
Et en plus je ne suis pas sure que ce soit un logiciel libre ...

Quote:
Everything you see in this distribution is Copyright 2001, Paul Nettle and Fluid Studios.
All rights are reserved.

This software is free for private and personal use. Use at your own risk, Yadda Yadda.

This software is NOT free for commercial use. If you use it, you must pay for it with
credit (i.e. credit to the author in your readme file or someplace.) Also, please send
an email to me at: midnight_AT_FluidStudios.com so I can track the software's usage.


Au fait, où sont les sources de FsRadRay ?


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jun 02, 2005 9:10 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Les sources de FsRadRay sont sur mon disque (et celles de FsRad sur le site de l'auteur), et devraient arriver "à terme" sur le site. Sauf que je n'ai jamais eu le moindre feedback sur FsRadRay, et que je le modifie encore régulièrement. Là encore, dès que j'en ai la possibilité, je pose ça sur le site.

Pour le reste (pas libre, win32 x86 seulement, ...), je suis tout à fait d'accord, mais faut être réaliste : c'est le seul outil correct que j'ai croisé, et les lightmaps sont trops importantes pour que l'on puisse s'en passer. Si quelqu'un trouve une autre piste et arrive a des résultats de ce genre là avec un LL portable, je serais enchanté :)


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jun 02, 2005 4:24 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Blender ne peut-il psa faire ce travail ? Surtout que la nouvelle version 2.37 est sortie.
Et j'ai vu qu'il était possible d'exporter en .radio les calculs radiosité Blender. (script python)

En tout cas, je ne compte pas me satisfaire de ce FsRad(Ray) ... pour les raisons mentionnées ci-dessus. Reste a savoir si ce sera facile à faire avec Blender.

J'ai aussi vu un format d'export (.raw): raw triangles ... Peut être le script peut être adapté pour faire des fichiers .tri ... Car je crois qu'il faut convertir maniellement les faces en triangles, non ?


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 03, 2005 12:07 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Jai réussi a obtenir un fichier .radio de la part de Blender:

- Ctrl+X - Erase all
- F10 (Scene-Renders buttons) -> Render panel -> Radio enclanché (haut-droite)
- Vue de coté (Num1)
- cliquer au dessus du cube
- Vue de dessus (Num7)
- Space -> Add - Mesh - Plane
- Vue de coté (Num1)
- F9 (Editing) -> Mesh tools 1 -> Draw normals
(le trait (normale à la face) devrait être sur le dessous. Si il est sur le dessus comme chez moi, la lumière va être élise sur le dessus. Cliquer donc sur "Mesh tools panel -> flip normals" ou "WKey -> flip normals")
- Tab
- F5 (Shading-material) -> Add new -> Shaders panel -> Emit=1.0
- Radiosity buttons
- Selectionner le cube ET le plan (touche majuscule)
- Radio tool panel -> Collect Meshes
- Calculation panel -> GO
(On devrait voir le plan en blanc et le haut du cube en gris. Le reste du cube en noir)
- edit: Bouton Radio-Tools -> Replace meshes
- Ancienne version: Appuyez sur V pour passer en mode vertex paint. Sortir de ce mode avec la touche V (important, sinon erreur)
- File -> Export -> Radiosity (.radio)

Et on a un fichier .radio qui je pense doit contenir les résultats des calculs radiosité. Reste a trouver un moyen de les exploiter dans Raydium


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 03, 2005 6:25 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
J'ai regardé le script d'export ...

Ce qui se passe:
- la radiosité est calculée
- Avec Replace Mesh, Blender remplace les meshes avec d'autres qui ont beaucoup plus de vertices (taille des patchs de radiosité). Et chaque vertive est de la couleur (niveau de gris) calculée avec la radiosité.
- On peut exporter ces valeurs de luminosité pour chaque vertice.

Après: le problème: est il posible avec Raydium (ou OpenGL donc implémentable dans raydium) de calculer les lumières avec ces valeurs plutot qu'en ajoutant des lightmaps (images)
En plus, ca pourrait peut être économiser de la mémoire: on ne charge pas une image mais des nombres. par contre, le dégradé entre chaque couleur doit être calculé.

Et je pense que ce serait plus facile dutiliser Blender plutot qu'un logiciel avec Wine pour les lumières. Déjà qu'on modélise déja les objets avec Blender, pas beaucoup de travail en plus.

Je vais me documenter plus là dessus. Ce serait bien que ca arrive dans Raydium.
Ce que j'imagine pour l'avenir de Raydium c'est la possibilité d'exporter toute une scène faite avec Blender vers des fichiers Raydium. Ce serait beaucoup plus simple pour travailler.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 03, 2005 7:42 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Si la radiosité est générée en utilisant des vertices supplémentaires, alors il n'a pas de moyen de continuer à utiliser la mesh d'origine (sinon blender le ferait aussi, déjà). Les lightmaps sont le seul moyen connu relativement économique pour simuler un éclairage statique, c'est un fait. Le seul moyen ici serait d'arriver à exporter les meshes colorées dans des images. Autre point, le rendu de la radiosité de Blender tel que je l'ai testé n'est pas du tout intéressant (graphiquement parlant), même s'il est probable que je n'ai pas du tout capté la configuration du rendu.
Note aussi qu'il n'est pas possible de "factoriser" une lightmaps, chaque pixel ayant son role (FsRadRay montre très bien que la taille des patchs est directement liée au niveau de détail de l'éclairage de ce patch, et non de la taille des triangles du patch en question).

Autre aspect de ton post : Raydium est Raydium, Blender est Blender : les capacités et les intérêts diffèrent, et si tu te retrouve à créer tes scènes entièrement dans Blender, c'est pas Raydium qu'il te faut, mais Game Blender :)
L'autre piste que je n'ai pas explorée pour le rendu des lightmaps, ce sont les outils de radiosité des différents Quake, dont le code source est GPL si je ne me trompe pas (mais la passage TRI->BSP me semble ... tendu).


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 03, 2005 8:41 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Pour Blender, ce que je pensait c'est la possibilité de créer toute la scène avec Blender. Pas de s'occuper du rendu. De plus GameBlender est très limité. Du point de vue rendu (il me semble) et aussi pour le réseau. C'est possible mais ca ne doit pas être facile.
Dailleurs, il me semble qu'il y a un outil comme ca pour le moteur graphique Ogre. On peut exporter une scène Blender vers Ogre.

c'est juste que ce serait tellement plus pratique de modéliser ton modèle dans Blender et d'y ajouter directement les lampes. Et d'exporter tout à la fois.

Par contre, je ne vois pas bien le problème d'utiliser un mesh modifié pour gérer les lumières. Même si il y a beaucoup plus de vertices, cela ne devrait pas prendre trop de ressoures système... Mais c'est vrai que je ne m'y connais pas bien en 3D

Sinon, la piste des Quake est intéressante. Cepandant, je me demande si tous les outils du SDK sont libres car j'avais cherché un editeur de maps Quake libre pour linux sans trouver.
mais je dois dire que ce n'est pas facile de toucher à Quake. Le code est très gros et on ne sait pas trop comment ca fonctionne. Je n'ai pas réussi a en tirer grand chose.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 03, 2005 8:59 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Je fais vite, mais :

- L'export de la scène (meshes + éclairage) directement dans Raydium, c'est déjà possible. Seul le calcul de la radiosité est distinct, et c'est une opération qu'on ne réalise que très peu souvent (de manière ponctuelle), puisque très longue.

- Le nombre de vertices est le principal critère qui va déterminer le framerate. 20 000 vertices = 140 fps, 100 000 vertices = 5 fps (chiffres arbitraires mais significatifs).

- L'outil dont je parle pour Quake n'est pas dans le jeu lui même, mais un outil séparé, ce qui simplifie peut être la prise en main de son code source (je vais tenter de retrouver son nom).


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jun 05, 2005 4:53 pm 
Offline
User avatar

Joined: Sat Dec 18, 2004 9:06 pm
Posts: 101
Location: France - Isère (38)
Je pense que c'est qrad3 ... (cette page m'a aidée)
Et les sources sont que le site ftp d'ID software: ftp://ftp.idsoftware.com/idstuff/quake2/source/old/q2source_12_11.zip
Ca n'a pas été facile à trouver

edit: un lien: http://www.gamers.org/dEngine/quake/Qbsp/


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 11 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 191 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group