Extrait du wiki : "Khrono a initialement désigné l'API Vulkan comme étant" l'initiative OpenGL de nouvelle génération "", et il s'agit d' un "effort de refonte en profondeur visant à unifier OpenGL et OpenGL ES en une API commune qui ne sera pas inversée" compatible avec les versions OpenGL existantes …
Lorsque vous écrivez des shaders non triviaux (comme pour tout autre élément de code non trivial), les gens font des erreurs. [la citation nécessaire] Cependant, je ne peux pas simplement le déboguer comme n'importe quel autre code - vous ne pouvez pas attacher simplement gdb ou le débogueur de Visual …
J'ai vu le terme strevenir plusieurs fois en regardant d'autres shaders de fragments OpenGL. Cependant, je ne sais pas ce qu'il représente ni à quoi il sert. Voici un exemple: uniform vec2 u_resolution; vec2 st = gl_FragCoord.xy/u_resolution; Je peux comprendre que cela convertit les coordonnées des pixels en coordonnées normalisées …
La documentation OpenGL indique que fwidth returns the sum of the absolute value of derivatives in x and y. Qu'est-ce que cela signifie en termes moins mathématiques et existe-t-il un moyen de le visualiser? Basé sur ma compréhension de la fonction, fwidth(p)a accès à la valeur de ppixels voisins. Comment …
Il y a quelques années, j'ai essayé d'implémenter ce Gem GPU dans OpenGL pour générer un terrain procédural 3D à l'aide de Marching Cubes . L'article suggère d'implémenter Marching Cubes dans un shader de géométrie pour une efficacité maximale. Cela signifie que je dois exécuter le shader une fois pour …
J'ai un nuage de points qui est rendu à l'écran. Chaque point a sa position et sa couleur ainsi qu'un identifiant. On m'a demandé de rendre les ID de chaque point à une texture, j'ai donc créé un FBO et attaché deux textures, une pour la couleur et une pour …
Après tant de lecture sur les transformations, il est temps d'implémenter une trackball pour mon application. Je comprends que je dois créer un vecteur de l'origine à l'endroit où la souris est cliquée, puis un autre de l'origine à l'endroit où la souris est relâchée. Ma question est la suivante: …
Je pensais avoir acquis une compréhension générale du fonctionnement des conventions de dénomination et des extensions OpenGL, jusqu'à ce que je tombe sur un cas qui m'a dérouté. Voici ma compréhension jusqu'à présent: Pas de suffixe - par exemple glGenBuffers(). Cette fonction fait partie du profil principal. La page wiki …
Le mélange alpha peut être activé pour rendre les surfaces transparentes, comme ceci: glDisable(GL_DEPTH_TEST); //or glDepthMask(GL_FALSE)? depth tests break blending glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); Mais cela ne fonctionne que si les objets sont rendus dans l'ordre arrière vers l'avant. Sinon, les choses en arrière-plan apparaissent devant des objets plus proches, comme …
Dans GLSL, l'interpolation correcte en perspective des attributs de sommet est le paramètre par défaut - on peut la désactiver pour des attributs de sommet spécifiques en utilisant le qualificatif noperspectif . À part les shaders de post-traitement, je n'ai jamais vu l'interpolation correcte de perspective désactivée - y a-t-il …
J'ai quelques shaders de calcul qui doivent être exécutés dans un certain ordre et dont les sorties dépendent des entrées précédentes. Idéalement, je n'aurai jamais besoin de copier un tampon côté client et de faire tout mon travail sur le GPU. Considérez que j'ai deux shaders de calcul compilés et …
Je voudrais charger des maillages arbitraires et dessiner des lignes noires épaisses le long des bords pour obtenir un aspect semblable à un ombrage. J'ai réussi à dessiner une silhouette noire autour des objets en utilisant le tampon de pochoir. Vous pouvez voir le résultat ici: Mais ce qui manque, …
Je suis assez confus à propos de cette fonction. La référence de contexte GLFW dit comme suit: Cette fonction active le contexte OpenGL ou OpenGL ES de la fenêtre spécifiée sur le thread appelant. Un contexte ne peut être actualisé que sur un seul thread à la fois et chaque …
Dans OpenGL les fonctions d'objet tampon ( glBufferData, glBufferSubDataet probablement quelques autres) ont un paramètre usage, décrit par la documentation comme une indication de l'utilisation prévue, probablement destiné à aider le rendement de la mise en œuvre de meilleures performances. usage Spécifie le modèle d'utilisation attendu du magasin de données. …
J'ai découvert que certains moteurs utilisent des cartes dérivées au lieu de cartes normales à espace tangent . Après quelques lectures, cela semble être un moyen vraiment génial de remplacer les normales d'espace tangent, mais y a-t-il un inconvénient à les utiliser? Pourquoi continuer à utiliser des normales d'espace tangent? …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.