Vulkan ? C'est plus rapide que OpenGL ? Si c'est le cas je crois que ça m'intéresse. Comment ça marche ? Il y a aussi des VBOs ? Des instanciations ? On peut aussi gérer les shaders ? Les effets d'ombres, reflets et éclairage ?
Vulkan ? C'est plus rapide que OpenGL ? Si c'est le cas je crois que ça m'intéresse. Comment ça marche ? Il y a aussi des VBOs ? Des instanciations ? On peut aussi gérer les shaders ? Les effets d'ombres, reflets et éclairage ?
Vulkan ... c'est "pire" (à prendre en main).
Voici un premier guide pour vous : https://vulkan.developpez.com/tutori...plet-debutant/
Vulkan, c'est OpenGL, mais en plus bas niveau. On peut tout faire comme ce que l'on fait en OpenGL, mais avec plus de "précision" (et encore plus de possibilités de se tirer une balle dans le pied). Mais, vous avez déjà une base, donc la migration devrait pouvoir le faire. Eh oui, il y a toujours les shaders et vous pourrez faire tous les rendus que vous souhaiterez (car ce n'est pas l'API qui détermine si on peut faire des ombres et autres).
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
je n'ai pas regardé en détail cette API mais,sauf erreur de ma part, je pense que le collectif Khronos s'est inspiré de Microsoft avec son Direct3d 10 et versions supérieures où tout le code concernant le rendu est délégué à du code HLSL ( High Sha
Donc oui si vous voulez migrer sous Vulkan il faudra faire principalement du code GPU et gérer les shaders.
En programmant les Shaders on programme directement le GPU.
L'avantage de Vulkan, je n'y suis pas allé voir mais je pense que c'est comme Direct3d 11 ou 12 c'est possible de faire du multithreading avec du code GPU sur la carte graphique.
Par contre ça demande plus de temps d'apprentissagec'est un bon moyen pour s'occuper lors des longues soirées d'hiver.
Ouch ! Pour transposer mes projets et libs en Vulkan ça va être long !
J'ai déjà un problème, j'ai bien ajouté "vulkan-1.lib" à mon linker mais Code::Blocks ne trouve pas vkEnumerateInstanceExtensionProperties()
Je laisse tomber Vulkan, c'est incompatible avec Mingw et je viens de passer les 3 dernières heures à tenter de compiler un code tout simple avec Visual Studio mais c'est plein d'erreurs de liage incompréhensibles
Ne pas réussir du premier coup, avoir des erreurs, en informatique, ... c'est la routine. Ce qui fait un bon "informaticien" ou un bon programmeur, c'est de savoir chercher, d'apprendre en continu et de la persévérance.
Bref, ici, c'est un forum d'entraide. Si vous voulez de l'aide, expliquez nous votre problème. Je pars du principe que vous avez suivi le tutoriel que j'ai conseillé plus haut et qui permet une installation avec Visual Studio, mais peut être il n'est pas aussi bon que je le pensais.
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
J'ai réussi à faire fonctionner Vulkan finalement mais sous Code::Blocks. Perso je garde une image très moyenne de Visual Studio, je n'ai jamais autant galéré pour faire tourner une lib en 10 ans de programmation ! Je suis le tuto mais avec Code::Blocks au lieu de Visual Studio, c'est vraiment particulier, rien à voir avec OpenGL. Rien que pour créer une instance Vulkan c'est délicat
Je me permets de revenir vers vous : C'est un peu hors sujet car ma question est plutôt d'ordre mathématique, je me suis aperçu que c'était principalement un calcul de physique qui ralentissait mon programme : Dans le jeu on est censé contrôler un véhicule et pour que ce dernier suive la route il faut que le programme calcule en permanence si la voiture se trouve ou non sur tel ou tel triangle composant chaque route. Pour cela j'utilise un calcul d'angles qui passe par la fonction acos() et c'est apparemment cette dernière qui est coûteuse car dès que je la supprime le programme augmente considérablement. J'ai essayé de remplacer cette fonction par l'utilisation d'une map qui contient les valeurs des angles pour des cosinus allant de -1 à 1 mais il s'est avéré que ce n'était pas plus rapide. Est-ce que vous auriez des astuces pour déterminer si un point est dans un triangles sans passer par des cos, sin, acos, racines ... ?
Ah ben acos est effectivement super long.
Tu n'as pas besoin de faire acos pour faire des collisions point/triangle , il suffit juste de savoir si ton point est entre deux coté.
en image ça donne ça :
Sinon 5seconde sur google et j'ai ça :
http://www.jeffreythompson.org/colli.../tri-point.php
Bref je te déconseille de refaire un moteur physique , si tu n'as pas les bagages nécessaire en terme d’optimisation , et il me semble que c'est pas la première fois que tu as des soucis de ce coté là....
Apres bien sur , si tu fait ton test de collision avec 100 000 triangle , ça m’étonne pas que c'est long ,et ça peut importe l'algo x)
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
Merci pour le lien. C'est une forme de gravité, pour que la voiture monte et descende en même temps que la route.
Ça permettrait de faire un premier test de manière optimisée si je comprends bien ? Parce que pour le moment il n'y a que deux routes mais lorsqu'il y en aura 50 ce sera pas la même chose ...En effet, il serait judicieux de faire un pré filtrage avec une boîte de collision (ou plus simplement une sphère )
Edit : Est-ce que vous pourriez me dire svp comment on peut en arriver à réaliser cela :
Des arbres, des ombres, un soleil réaliste et tout cela est fluide
Malheureusement l'algorithme avec la forum de Héron ne fonctionne qu'une fois sur deux, je suis entrain de vérifier s'il n'y a pas une erreur dans la formule mais je ne la trouve nulle part, je ne trouve que des formules différentes qui passent par les longueurs des côtés, et calculer ces longueurs reviendraient à passer par les fonctions sqrt() et pow() et je préfère éviter
Oui enfin refaire le moteur de rendu de UE4 , tu imagine bien que c'est tout sauf simple , et que tu trouvera pas forcément la réponse ici
Je t'ai donné deux algo , sur la méthode de heron ne te va pas, tu peux utiliser la première qui est facile à implémenter , mais un peu plus gourmande en calcul ,vu que ça demande de faire quelque div et if.Malheureusement l'algorithme avec la forum de Héron ne fonctionne qu'une fois sur deux
Qu'est-ce que les octrees exactement ? J'ai beau chercher je ne trouve aucune explication précise
Alors le octrees ,c'est pas une technique de rendu ,c'est juste une partition de l'espace pour tester qu'une partie des collisions.comme je l'ai écris dans un message précédent il faut trouver une technique de hiérarchie spatiale peut-être avec des octrees.
Et donc oui pour les collisions, il faut utiliser des octrees mais pas que , il faut simplifier les box de collisions et utiliser des algo rapide (donc les acos/cos et compagnie faut oublier ).
Partager