GXDECLTYPE: различия между версиями
Перейти к навигации
Перейти к поиску
Byurrer (обсуждение | вклад) м (→Заметки) |
Byurrer (обсуждение | вклад) м (→Константы) |
||
| Строка 26: | Строка 26: | ||
==Константы== | ==Константы== | ||
| − | + | ;GXDECLTYPE_FLOAT1 | |
| − | 1 float, итоговое значение float4(x, 0.0, 0.0, 1.0) | + | :1 float, итоговое значение float4(x, 0.0, 0.0, 1.0) |
| − | + | ;GXDECLTYPE_FLOAT2 | |
| − | 2 float, итоговое значение float4(x, y, 0.0, 1.0) | + | :2 float, итоговое значение float4(x, y, 0.0, 1.0) |
| − | + | ;GXDECLTYPE_FLOAT3 | |
| − | 3 float, итоговое значение float4(x, y, z, 1.0) | + | :3 float, итоговое значение float4(x, y, z, 1.0) |
| − | + | ;GXDECLTYPE_FLOAT4 | |
| − | 4 float | + | :4 float |
| − | + | ;GXDECLTYPE_UBYTE4 | |
| − | 4 unsigned byte | + | :4 unsigned byte |
| − | + | ;GXDECLTYPE_SHORT2 | |
| − | 2 signed short, итоговое значение short4(x, y, 0, 1) | + | :2 signed short, итоговое значение short4(x, y, 0, 1) |
| − | + | ;GXDECLTYPE_SHORT4 | |
| − | 4 signed short | + | :4 signed short |
| − | + | ;GXDECLTYPE_UBYTE4N | |
| − | 4 unsigned byte, итоговое значение ubyte4(x/255.0, y/255.0, z/255.0, w/255.0) | + | :4 unsigned byte, итоговое значение ubyte4(x/255.0, y/255.0, z/255.0, w/255.0) |
| − | + | ;GXDECLTYPE_SHORT2N | |
| − | 2 signed short, итоговое значение short4(x/32767.0, y/32767.0, 0.0, 1.0) | + | :2 signed short, итоговое значение short4(x/32767.0, y/32767.0, 0.0, 1.0) |
| − | + | ;GXDECLTYPE_SHORT4N | |
| − | 4 signed short, итоговое значение short4(x/32767.0, y/32767.0, z/32767.0, w/32767.0) | + | :4 signed short, итоговое значение short4(x/32767.0, y/32767.0, z/32767.0, w/32767.0) |
| − | + | ;GXDECLTYPE_USHORT2N | |
| − | 2 unsigned short, итоговое значение ushort4(x/65535.0, y/65535.0, 0.0, 1.0) | + | :2 unsigned short, итоговое значение ushort4(x/65535.0, y/65535.0, 0.0, 1.0) |
| − | + | ;GXDECLTYPE_USHORT4N | |
| − | 4 unsigned short, итоговое значение ushort4(x/65535.0, y/65535.0, z/65535.0, w/65535.0) | + | :4 unsigned short, итоговое значение ushort4(x/65535.0, y/65535.0, z/65535.0, w/65535.0) |
| − | + | ;GXDECLTYPE_FLOAT16_2 | |
| − | 2 16-bit float, итоговое значение half4(x, y, 0.0, 1.0) | + | :2 16-bit float, итоговое значение half4(x, y, 0.0, 1.0) |
| − | + | ;GXDECLTYPE_FLOAT16_4 | |
| − | 4 16-bit float | + | :4 16-bit float |
| − | |||
| − | |||
| − | |||
| + | ;GXDECLTYPE_UNUSED | ||
| + | :Значение для завершающего элемента массива декларации вершин | ||
==Заметки== | ==Заметки== | ||
Текущая версия на 15:12, 23 июня 2019
Содержание
Описание[править]
Типы данных для декларации вершин.
Синтаксис[править]
enum GXDECLTYPE
{
GXDECLTYPE_FLOAT1 = 0,
GXDECLTYPE_FLOAT2 = 1,
GXDECLTYPE_FLOAT3 = 2,
GXDECLTYPE_FLOAT4 = 3,
GXDECLTYPE_UBYTE4 = 5,
GXDECLTYPE_SHORT2 = 6,
GXDECLTYPE_SHORT4 = 7,
GXDECLTYPE_UBYTE4N = 8,
GXDECLTYPE_SHORT2N = 9,
GXDECLTYPE_SHORT4N = 10,
GXDECLTYPE_USHORT2N = 11,
GXDECLTYPE_USHORT4N = 12,
GXDECLTYPE_FLOAT16_2 = 15,
GXDECLTYPE_FLOAT16_4 = 16,
GXDECLTYPE_UNUSED = 17,
};
Константы[править]
- GXDECLTYPE_FLOAT1
- 1 float, итоговое значение float4(x, 0.0, 0.0, 1.0)
- GXDECLTYPE_FLOAT2
- 2 float, итоговое значение float4(x, y, 0.0, 1.0)
- GXDECLTYPE_FLOAT3
- 3 float, итоговое значение float4(x, y, z, 1.0)
- GXDECLTYPE_FLOAT4
- 4 float
- GXDECLTYPE_UBYTE4
- 4 unsigned byte
- GXDECLTYPE_SHORT2
- 2 signed short, итоговое значение short4(x, y, 0, 1)
- GXDECLTYPE_SHORT4
- 4 signed short
- GXDECLTYPE_UBYTE4N
- 4 unsigned byte, итоговое значение ubyte4(x/255.0, y/255.0, z/255.0, w/255.0)
- GXDECLTYPE_SHORT2N
- 2 signed short, итоговое значение short4(x/32767.0, y/32767.0, 0.0, 1.0)
- GXDECLTYPE_SHORT4N
- 4 signed short, итоговое значение short4(x/32767.0, y/32767.0, z/32767.0, w/32767.0)
- GXDECLTYPE_USHORT2N
- 2 unsigned short, итоговое значение ushort4(x/65535.0, y/65535.0, 0.0, 1.0)
- GXDECLTYPE_USHORT4N
- 4 unsigned short, итоговое значение ushort4(x/65535.0, y/65535.0, z/65535.0, w/65535.0)
- GXDECLTYPE_FLOAT16_2
- 2 16-bit float, итоговое значение half4(x, y, 0.0, 1.0)
- GXDECLTYPE_FLOAT16_4
- 4 16-bit float
- GXDECLTYPE_UNUSED
- Значение для завершающего элемента массива декларации вершин
Заметки[править]
В видеопамяти регистры четырехкомпонентные, значит #GXDECLTYPE_FLOAT1 в видеопамяти будет занимать 4 float.
#GXDECLTYPE_FLOAT1 (2, 3), введены для того чтобы меньше данных гонять по шине, то есть с CPU в GPU будет отправлен 1 float при этом GPU допишет в регистр скрытые данные. Аналогичное правило действует и для других типов данных.
Данные имеющие нормализацию (в конце имени символ N) являются float типом в пределах отведенной памяти. Например #GXDECLTYPE_UBYTE4N принимают значения [0.0/255.0, 255.0/255.0]. Однако, на стороне CPU данные представлены указанными в значении типами.
При пересылке со стороны CPU в GPU данные должны иметь следующие размеры (на компоненту):
- float - 4 байта
- float16 - 2 байта
- ubyte - 1 байт
- short - 2 байта