Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.
Menu
Calculatrices
Graph 35 à 100
Graph 25+Pro/25+E/25+E II
Graph 35+USB/75(+E)/85/95 SD
Graph 100(+)
Classpad 300/330(+)
fx-CG 10/20 (Prizm)
Classpad 400(+E)
Graph 90+E
fx-92+ SC
Liens
¤ Vous cherchez une fonction ?
Jeux >> Graph 90+E >> Bric à Brac >> Raycasting
Raycasting
Version : 1.0 Taille : 131000 octets Ajouté le : 2025-07-07 02:26 Modifié le : 2025-07-07 02:47
Auteur et posteur :
FarhiHors ligneMembrePoints: 1549 Défis: 0 Message
Planète Casio - Bric à Brac - Raycasting - farhi - Calculatrices
Nombre de visites sur cette page : 100
Score au progrank : 15
Pas encore de note !
Vous devez être connecté(e) pour noter (inscription).
23 téléchargements | Soumettre un test


Description :

Hello les gens !
J'ai réalisé un petit test de raycasting, et je vous partage le code source avec.
Pour vous déplacer, utilisez les flèches ; pour quitter, appuyez sur EXIT.
Vous pouvez aussi activer ou désactiver certaines options (comme les ombres, les textures, rendu rapide ou l'overclock) en appuyant sur F1 ou F2 ou F3 ou F4.
(Vous pouvez combiner les options)

Il se peut qu'il y ait quelques petits bugs, notamment si vous vous collez trop aux murs avec les textures activé : ça peut faire planter le programme. C'est normal, je n'ai pas ajouté de protections dans le code, car comme je l'ai dit, c'est juste un test de performance.
Enjoy !


Commentaires :


LephenixnoirEn ligneAdministrateurPoints: 25232 Défis: 174 Message
Posté le 07-07-2025 à 11:35 | #
Jolies fonctionnalités ! Les ombres sont très bizarres. Le calcul de distance de mur marche pour la partie murale, mais pour le sol/plafond la distance est une fonction de la ligne, pas de la colonne.

Edit : Je vois que t'as la rowDistLUT sous la main et que tu le calcules correctement pour le mode quadrillage

Tu me donnes envie de coder les textures au sol/plafond et des effets sympa dans Azuray maintenant *-*
FarhiHors ligneMembrePoints: 1549 Défis: 0 Message
Posté le 07-07-2025 à 23:03 | #
Merci !
Lephenixnoir a écrit :
Le calcul de distance de mur marche pour la partie murale, mais pour le sol/plafond la distance est une fonction de la ligne, pas de la colonne.

Oui c'est pour éviter de réécrire des pixels

Lephenixnoir a écrit :
Tu me donnes envie de coder les textures au sol/plafond et des effets sympa dans Azuray maintenant *-*

Mdr, à la base c'était juste un petit test
Mb88Hors ligneRédacteurPoints: 1265 Défis: 3 Message
Posté le 07-07-2025 à 23:14 | #
Farhi a écrit :
Oui c'est pour éviter de réécrire des pixels

Je n'ai pas regardé le code, mais tu ne fais pas le shading lors du dessin des pixels ? Et tu pourrais même te passer de dlclear vu que tu remplies tout l'écran si tu ne le fais pas déjà.
LephenixnoirEn ligneAdministrateurPoints: 25232 Défis: 174 Message
Posté le 07-07-2025 à 23:21 | #
Mdr, à la base c'était juste un petit test

C'est la petite rivalité Ça motive !

Par contre si le raycaster va pas vite ça donne un présage moyen de la performance possible d'un vrai moteur 3D, c'est là que c'est délicat
FarhiHors ligneMembrePoints: 1549 Défis: 0 Message
Posté le 08-07-2025 à 00:01 | #
Mb88 a écrit :
Je n'ai pas regardé le code, mais tu ne fais pas le shading lors du dessin des pixels ?

Si mais tout le rendu est dans la même boucle et grâce au raycast je connais à quel hauteur s'arrête le mur donc je sais où commence le plafond et le sol, ce qui n'est pas le cas si je dessine en ligne.

Mb88 a écrit :
Et tu pourrais même te passer de dlclear vu que tu remplies tout l'écran si tu ne le fais pas déjà.

C'est déjà le cas, la ligne est commenté dans le code source.

Lephenixnoir a écrit :
Par contre si le raycaster va pas vite ça donne un présage moyen de la performance possible d'un vrai moteur 3D, c'est là que c'est délicat

Après si tu veux m'aider à porter mon moteur 3D sur Azur je dit pas non
ça permettrai d'avoir un Zelda 3D fluide sur casio et même ouvrir la possibilité à la création de jeu 3D facilement.
Comme mon moteur n'est rien d'autre qu'une sorte d'api, les autres utilisateur n'aurais même plus besoin de toucher aux shaders d'Azur
LephenixnoirEn ligneAdministrateurPoints: 25232 Défis: 174 Message
Posté le 08-07-2025 à 00:05 | #
Après si tu veux m'aider à porter mon moteur 3D sur Azur je dit pas non
ça permettrai d'avoir un Zelda 3D fluide sur casio et même ouvrir la possibilité à la création de jeu 3D facilement.
Comme mon moteur n'est rien d'autre qu'une sorte d'api, les autres utilisateur n'aurais même plus besoin de toucher aux shaders d'Azur

Moi je demande que ça ! Azur est là pour ça. Et oui les utilisateurs finaux sont pas supposés écrire leurs propres shaders. C'est en gros soit moi pour les primitives de base soit les moteurs spécialisés pour des trucs comme le raycasting, des filtres, etc.
FarhiHors ligneMembrePoints: 1549 Défis: 0 Message
Posté le 08-07-2025 à 00:18 | #
Ah bah il fallait me le dire plus tôt !
Si tu veux, je peux te filer le code actuel de Particule et tu crées une distribution Casio Azur.
En gros, ce que fait Particule, c’est une simple redirection vers les libs pour les bonnes distributions, et ça simplifie au maximum leur utilisation pour rendre le tout compatible sur un maximum de plateformes.
Actuellement, j’ai fait les distributions Windows, Linux et Casio Graph 90 (mais sans Azur). Mais j’ai prévu de pouvoir rajouter des options du style : quelle lib tu utilises.
Exemple avec Windows : SDL2, OpenGL, Vulkan (pour le moment, j’ai fait que SDL2, mais Particule peut offrir la possibilité de choisir).
Donc, on pourrait très bien rajouter une option Azur pour Casio.
Si ça te tente, on peut bosser sur cette nouvelle distrib.
En soi, l’API de Particule existe, mais si je ne l’ai pas encore publiée officiellement, c’est parce que je n’ai pas encore fait l’éditeur UI. Mais je peux très bien publier l’API sans l’éditeur (actuellement, c’est ce que je fais pour ZTOTN, j'utilise l'API sans éditeur UI).
Donc, si t’es chaud pour faire une distribution, tu me dis !
LephenixnoirEn ligneAdministrateurPoints: 25232 Défis: 174 Message
Posté le 08-07-2025 à 10:42 | #
En vrai ouais, avec le bémol que j'ai un temps modeste donc faut bien viser. Si je peux comprendre ce que tu utilises comme rendu ce serait un bon point de départ. Parce que si c'est "juste" triangles/quads texturés c'est "juste" l'affaire d'ajouter un shader. Si tu fais plein de manips directes sur la VRAM ça va être tendu.
FarhiHors ligneMembrePoints: 1549 Défis: 0 Message
Posté le 08-07-2025 à 12:53 | #
Yep !
Lephenixnoir a écrit :
Si tu fais plein de manips directes sur la VRAM, ça va être tendu.

J'en fais forcément, mais justement, c’est là tout l’intérêt de Particule : c’est que l’utilisateur n’ait pas à manipuler le cœur du système.
Par exemple, j’ai une fonction Texture::Draw(Window* window, int x, int y).
Eh bien, le code qui se cache derrière pour la version Casio gint, c’est ça :
inline void Draw(Window* window, int x, int y) {
    (void)window;
    gint::dimage(x, y, img);
}

Donc si, dans une autre fonction, je fait de la manipulation sur la VRAM, ce n’est pas grave : il suffit que tu refasses ta version de cette fonction sans utiliser la VRAM, en full Azur. Ce qui compte, c’est que le résultat soit le même.
Donc la version Azur sera probablement très éloignée de la version gint, car il faudra sans doute refaire des morceau du pipeline de rendu mais il n'y aura plus d'utilisation de la VRAM dans cette version là.
Je sais pas si ça ta rassuré ce que je t'ai dit
Je te file le code d'ici demain ou après-demain, je dois le nettoyer et le commenter un peu avant de te le passer.
Est-ce que tu veux pas passer vers une autre messagerie que PC ?

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2025 | Il y a 60 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd