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.

Forum Casio - Discussions


Index du Forum » Discussions » Question sur le raycasting
Mactul Hors ligne Membre Points: 699 Défis: 0 Message

Question sur le raycasting

Posté le 25/03/2019 19:45

Hello, Merci à tous ceux qui ont répondus à mon précédent topic: Test perspectives 3D besoin d'un avis
Comme le sujet à sérieusement dévié sur le raycasting, voici un topic dédié spécialement

Voilà postez touts les liens sur le sujet que vous trouvez et posez vos questions

lien de Disperseur: https://www.planet-casio.com/Fr/forums/topic14655-1-Les_espaces_3D_(coder).html ?
lien de Lightmare: http://projet-moteur-3d.e-monsite.com/pages/raycasting/raycasting.html
lien de Kikoodx: https://lodev.org/cgtutor/raycasting.html
lien de Disperseur: https://guy-grave.developpez.com/tutoriels/jeux/doom-wolfenstein-raycasting/#
lien de Kikoodx: https://en.m.wikipedia.org/wiki/Digital_differential_analyzer_(graphics_algorithm)

projet de Disperseur: https://www.planet-casio.com/files/forums/RCMOT001-164244.zip
projet C de Disperseur (à voir absolument): https://www.planet-casio.com/files/forums/RCMOT004-164576.g1a
projet C-Basic de Lightmare: https://www.planet-casio.com/files/forums/RAYCAST2-164505.g3m

algorithme DDA de Lightmare: https://www.planet-casio.com/files/forums/DDA-164671.g1m
Je posterais ici tout vos liens


Précédente 1, 2, 3, 4, 5, 6, 7 Suivante
Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 08/05/2019 08:37 | #


merci beaucoup ! je vais essayer ca !
pour les "doubles", je les avais mis là pour le debug, je vais les enlever !

Ajouté le 08/05/2019 à 10:27 :
Alors j'ai mis la commande GetVRAMAddress() dans la fonction main, et ca compile. Mais la calculatrice ne m'affiche toujours rien...
J'ajoute que le seul changement que j'ai effectué est d'ajouter la fonction qui change l'addresse de la VRAM.
"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Lephenixnoir En ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 08/05/2019 11:10 | #


Appeler GetVRAMAddress() ne sert à rien en lui-même, tu dois remplacer les occurrences de 0xa8000000 avec.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 08/05/2019 13:21 | #


@Lightmare, je me met au développement d'un simulateur de vol sur Graph 90+E en C.Basic portant le nom de Fly Simulator (FlySim) Ton moteur de raycasting en C.Basic m'intéresse pour faire une map avec une 3D rudimentaire, tu peux m'expliquer comment s'en servir ? Merci d'avance !
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 08/05/2019 14:07 | #


Salut Shadow, le raycasting est très limité et qu'il ne gère généralement pas l'axe vertical, je vois mal en quoi ça pourrait convenir à un simulateur de vol.
Le raycasting est très utile dans de petits espaces avec des murs, mais pas pour de grands espaces ouverts.
Je ne connais pas grand chose là-dessus, mais la première chose qui me vient à l'esprit est le Mode 7 de la Super Nintendo, qui risque d'être plus compliqué à concevoir qu'un moteur de raycasting mais sera probablement bien plus rapide et donnera un rendu similaire.
Insérez du conditionnel ici.
ouais ouais
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 08/05/2019 14:10 | #


Je, vois, en fait j'aurais besoin de plusieurs moteurs 3D : un en l'air (donc un grand espace ouvert avec un défilement de la map en contre-bas et collision avec le sol) et un autre au sol avec le relief des objets Je ne pense pas gérer les collisions entre objets et l'avion, c'est une perte de temps, de plus Flight Simulator de Microsoft et X-Plane ne gèrent pas non plus les collisions avec les bâtiments
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 08/05/2019 15:43 | #


@Shadow :
Alors je suis très flatté que mon moteur intéresse des gens !
Mais pour un jeu en temps réel, il est TRES lent ( genre 0,25 fps et encore ). Il faudrait le faire en C et je galère à ca...

@Lephe :
C'est à dire mettre la commande concernée dans GetVRAMAddress() ?
"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Lephenixnoir En ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 08/05/2019 15:46 | #


Oups pardon, j'ai dit une bêtise. Le coup de GetVRAMAddress() c'est si tu fais du dessin sans Bdisp, j'ai supposé que tu avais du code ailleurs. Vraiment désolé. >_>

Le problème c'est que tu fais les dessins sur l'écran directement avec Bdisp_SetPoint_DD() puis tu écrases les contenus de l'écran avec Bdisp_PutDisp_DD(). Tu dois fais le dessin dans la VRAM à la place, à l'aide de Bdisp_SetPoint_VRAM().
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 08/05/2019 15:51 | #


Je suis désolé de te harceler de questions, mais elle prends quels arguments cette fonction ? >_<'
( il faudrait vraiment une doc sérieuse... )
"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Lephenixnoir En ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 08/05/2019 16:23 | #


Bdisp_SetPoint_VRAM() ? Exactement comme Bdisp_SetPoint_DD() sauf qu'elle dessine dans la VRAM à la place.

Ajouté le 08/05/2019 à 16:24 :
http://prizm.cemetech.net/index.php/Bdisp_SetPoint_VRAM
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Disperseur Hors ligne Membre Points: 1830 Défis: 1 Message

Citer : Posté le 10/05/2019 11:47 | # | Fichier joint


@Lightmare: Comme promis, voici en lien le fichier dans lequel tu trouveras les sources du moteur. Ne te fie pas au nom qui sous-entends la version 001, il s'agit bien de la 004
Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 10/05/2019 15:52 | #


Merci beaucoup Disperseur ! Je vais le tripatouiller ce week end!
"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Disperseur Hors ligne Membre Points: 1830 Défis: 1 Message

Citer : Posté le 11/05/2019 15:04 | #


J'y réfléchissait tout à l'heure: pour accélérer l'affichage ou du moin le rendre plus propre on pourrait faire appel à la fonction poligone() .. comme ça les murs ne seront plus des escaliers. Par contre je doute que l'on gagne en vitesse
Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 11/05/2019 16:03 | #


Les deux moyens d'empêcher l'effet "escalier" sont d'augmenter le nombre de tests pour savoir s'il y a un mur pour chaque rayon, ou d'utiliser le DDA qui détecte 100% des murs à leur surface ( la première technique ne garantissant pas de détecter un mur à sa surface)
"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 11/05/2019 16:39 | #


Avec C.Basic la fonction polygone est effectivement la piste la plus rapide que j'ai pour faire des éléments en 3D
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Disperseur Hors ligne Membre Points: 1830 Défis: 1 Message

Citer : Posté le 11/05/2019 17:36 | #


En effet. Mais comment compte tu coder la map de ton jeu ?
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 11/05/2019 17:40 | #


Je ne sais pas du type aucune idée ! Pour l'instant l'avion en lui-même est au point, on peut décoller atterrir, voler la perpective de l'horizon est parfaitement gérée et les instruments sont fonctionnel.
Le nord est simulé, je me disait on peut peut être dessiner un truc à l'écran en fonction de l'orientation, sinon, on peut aussi générer des éléments en 3D simple de manière aléatoire ? bref… je nage un peu de ce côté ^^'

Mais vu que le raycasting est lent, dessiner des polygones pré-définis est plus rapide que de calculer des angles compliqués
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Mactul Hors ligne Membre Points: 699 Défis: 0 Message

Citer : Posté le 13/05/2019 19:45 | #


j'ai l'impression que tu t'amuse
Mes programmes
Cliquer pour enrouler

Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ

Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 13/05/2019 20:00 | #


Moi !?

Bah, bien sûr, si ça me faisait chier je coderai un truc pareil !
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 01/11/2019 21:53 | # | Fichier joint


Bonjour bonjour ! je réanime ce topic en proposant un progrès non pas en raycasting, mais en raytracing !

Je l'ai fait pour ma graph 90, mais pour l'instant, l'image est en "nuances de gris" :

Les performances rendent son utilisation totalement impossible en dehors d'un contexte expérimental ou de rendu d'images.
"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Lightmare Hors ligne Membre de CreativeCalc Points: 690 Défis: 0 Message

Citer : Posté le 01/11/2019 22:03 | # | Fichier joint


...Une image !


"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 01/11/2019 22:26 | #


OH !
C'est bô.
Tu comptes implémenter les couleurs ?
J'aimerais voir ça.
Combien de temps pour calculer l'image ?
ouais ouais
Précédente 1, 2, 3, 4, 5, 6, 7 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 206 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