Що означають компоненти gl_TexCoord [0]?


10

Які відмінності між gl_TexCoord[0].s, gl_TexCoord[0].t gl_TexCoord[0].pі gl_TexCoord[0].x, gl_TexCoord[0].y gl_TexCoord[0].z?

Я розумію, що gl_TexCoord[0].x, gl_TexCoord[0].y gl_TexCoord[0].zце піксельні координати?

Але що gl_TexCoord[0].s, gl_TexCoord[0].t gl_TexCoord[0].pозначають і де я повинен їх використовувати?

Відповіді:


15

Різниця лише семантична . Будь-який вектор GLSL можна отримати, використовуючи x/y/z/w, r/g/b/aабо s/t/p/q. Типовим є:

  • xyzwдля космічних координат
  • rgbaдля кольорів
  • stpqдля текстурних координат
  • якщо ніщо з перерахованого вище не застосовується, будь-який аромат може бути використаний, але коли це може бути заплутаним, var[0]/var[1]/var[2]/var[3]його можна використовувати замість цього.

Ви можете змішати їх у виразах: foo.x = bar.qабо навіть foo.xy = bar.gb + baz.st;. Основне обмеження полягає в тому, що шипіння може бути здійснено лише за допомогою букв однієї групи, тобто. foo.xyaє недійсним , так як він змішується xyз xyzwі aз rgba.


Я не знайомий із позначенням stpq для координат текстури ( натомість завжди бачив uv ). Я здогадуюсь, p буде використовуватися для 3D-текстур, але в якій ситуації буде використано q ? Редагувати: Не забудьте щойно я знайшов свою відповідь. Це було б із TextureCubeArrays.
Девід Гувейя

@DavidGouveia: Ні, насправді. Різні функції текстурування мають різні значення. Наприклад, звернення до sampler2DShadowз textureдопомогою що р координат цього значення для порівняння. Доступ до a sampler2DShadowз textureProjозначає, що координата p є значенням порівняння, а координата q ділиться на інші три ( перед порівнянням, значить, p є насправді comparison * q). Вони не мають внутрішнього значення; значення змінюється залежно від способу їх використання.
Нікол Болас

@Nicol Дякуємо, що очистили це. Я фактично використовував тільки HLSL раніше, і навіть там тільки коли-небудь справді потрібні базові внутрішні текстилі tex2D та texCube. Мені не було відомо про безліч існуючих функцій текстурування. (Непов’язано: Це ваше справжнє ім’я, чи просто дракон з MTG?)
Девід Гувейя
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.