Articles of shader

Ressources d’apprentissage OpenGL 4.x

Je sais qu’il y a des questions sur l’apprentissage d’OpenGL. Voici ce que je sais: maths pour la 3D Théorie 3D Voici ce que je veux savoir: – Profil OpenGL 4.0 Core (ou dernier) – Shader Language 400 (ou plus récent) – chaque partie de ci-dessus (si cela ne fonctionne pas entre les fournisseurs, cela […]

Que peut faire glDrawArrays pour générer une erreur GL_INVALID_OPERATION?

J’ai essayé d’écrire une implémentation GPU en deux passes de l’algorithme Marching Cubes, similaire à celle décrite dans le premier chapitre de GPU Gems 3, en utilisant OpenGL et GLSL. Cependant, l’appel à glDrawArrays dans mon premier passage échoue systématiquement avec un GL_INVALID_OPERATION . J’ai consulté toute la documentation que je peux trouver et j’ai […]

Obtenir la vraie valeur z du tampon de profondeur

L’échantillonnage à partir d’un tampon de profondeur dans un shader renvoie des valeurs comsockets entre 0 et 1, comme prévu. Compte tenu des plans proches et éloignés de la caméra, comment calculer la valeur z réelle à ce stade, c’est-à-dire la distance par rapport à la caméra?

Pourquoi mon shader OpenGL Phong se comporte-t-il comme un shader plat?

J’ai appris OpenGL ces deux dernières semaines et j’ai rencontré des problèmes pour implémenter un shader de Phong. Il semble ne pas faire d’interpolation entre les sumts malgré l’utilisation du qualificatif smooth . Est-ce que j’ai râté quelque chose? Pour atsortingbuer un crédit lorsque le crédit est dû, le code des shaders de sumts et […]

Lors de la transformation de textures (dessinées en objects 3D plats) en imitation de la profondeur, les lignes noires apparaissent de manière aléatoire

Nous développons un RPG top-down en utilisant XNA. Récemment, nous avons rencontré un problème lors de l’écriture du code pour afficher nos cartes. Lorsque vous dessinez la carte, vue de haut en bas avec une masortingce de transformation normale, tout semble aller bien. Lorsque vous utilisez une masortingce de transformation non plate, telle que la […]

OpenGL ES 2.0 Plusieurs programmes ou plusieurs Shaders ou quoi? Comment ça marche?

Le problème (TL; DR) Mon problème, fondamentalement, est que je ne sais pas comment OpenGL ES 2.0 m’attend à écrire et à utiliser plusieurs shaders; ou s’il est même souhaitable / prévu qu’une personne le fasse. La question fondamentale ici est la suivante: si j’ai une pomme, une roche shinye et un maillage flou, tous […]

GLSL / C ++: tableaux d’uniformes?

Je voudrais laisser les lumières d’OpenGL et faire les miennes. Je voudrais que mes shaders permettent un nombre variable de lumières. Peut-on déclarer un tableau d’uniformes dans les shaders GLSL? Si oui, comment définirions-nous les valeurs de ces uniformes?

Liaison d’atsortingbut explicite vs automatique d’atsortingbut pour les shaders OpenGL

Lorsque vous configurez des emplacements d’atsortingbut pour un programme de shake OpenGL, vous avez deux options: glBindAtsortingbLocation () avant la liaison pour définir explicitement un emplacement d’atsortingbut. ou glGetAtsortingbLocation () après la liaison pour obtenir un emplacement d’atsortingbut atsortingbué automatiquement. Quelle est l’utilité d’utiliser l’un sur l’autre? Et lequel, le cas échéant, est préféré dans […]

Quelle est l’origine de ce one-liner?

J’ai vu ce générateur de nombres pseudo-aléatoires à utiliser dans les shaders mentionnés ici et là dans le Web : float rand(vec2 co){ return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453); } On l’appelle diversement “canonique”, ou “un traceur que j’ai trouvé quelque part sur le web”. Quelle est l’origine de cette fonction? Les valeurs constantes sont-elles aussi […]

Quelle est l’extension de fichier correcte pour les shaders GLSL?

J’apprends l’ombrage de glsl et j’ai rencontré différents formats de fichiers. J’ai vu des gens donner leurs shaders de sumts et de fragments .vert et les extensions .frag . Mais j’ai aussi vu des extensions .vsh et .fsh , et même les deux shaders dans un seul fichier .glsl . Donc, je me demande s’il […]