![]() |
Ответ: Xors3D. Шейдеры. Урок первый
Цитата:
так что замени input.whatFace на просто whatFace ниже. |
Ответ: Xors3D. Шейдеры. Урок первый
Цитата:
Цитата:
Цитата:
input, whatFace - имя |
Ответ: Xors3D. Шейдеры. Урок первый
2Arton
struct A { ... }; это описание структуры, то есть как шаблон, реальный объект при этом не создается. Объект структуры создается так: A object; - то есть сначала тип, потом имя объекта. Если нужно обратиться к полю созданного объекта: object.value; Теперь вот смотри, в графическом конвеере не всё делают шейдеры. То есть в частности между вершинным и пиксельным тоже происходят скрытые вычисления. То есть это я к тому что если структура VSOutput у тебя определена один раз, то объекта два. Сначала создаешь output в вершинном шейдере и записываешь туда явно вычисленные значения, затем происходят скрытые вычисления, и в пиксельный шейдер тебе возвращается уже другой объект, даже если он того же типа, значения полей будут другими - это важно понимать. В данном случае ты одной структурой описал объекты для выходных вершинных и входных пиксельных данных, но иногда бывают другие ситуации, когда данные различаются и нужно например объявлять отдельно VSOutput и PSInput. Также вот в такая запись: float4 PSMain( float4 pos : POSITION0, float whatFace : VFACE ) {...} будет эквивалентна такой: struct PSInput { float4 pos : POSITION0; float whatFace : VFACE; }; float4 PSMain( PSInput input ) {...} Во втором случае мы все входные параметры описали одной стрктурой и передали в качестве аргумента все параметры как один объект. Только внутри функции уже нужно обращаться к параметрам как к полям объекта input.pos и т. д. Точно также мы можем объявить и выходную структуру, например в данном случае будет: struct PSOutput { float4 col : COLOR0; }; В данном случае для одного параметра это избыточно, но механизм я думаю ясен. |
Ответ: Xors3D. Шейдеры. Урок первый
Почему нельзя использовать цвет в качестве числа???
Код:
index=tex2D(MixSampler,input.texCoords).r; |
Ответ: Xors3D. Шейдеры. Урок первый
какую ошибку пишет?
|
Ответ: Xors3D. Шейдеры. Урок первый
Ошибку не выдает, просто отказывается закрашивать модель текстурой. в Итоге получается серая моделька.
Идея была такая: Картинка[R,G,B,A] R-индекс первой текстуры G-индекс второй текстуры B-коэффициент смешивания одиннадцать текстур TS[0],TS[1]..TS[10] |
Ответ: Xors3D. Шейдеры. Урок первый
Цитата:
в лог пишутся ошибки компиляции шейдеров. читай их. |
Ответ: Xors3D. Шейдеры. Урок первый
Can't create effect from file 'Resurses\Shaders\EXP\EXP.fx'!
E:\SkinBattle - копия\Resurses\Shaders\EXP\EXP.fx(165,61): error X3000: syntax error: unexpected token ')' |
Ответ: Xors3D. Шейдеры. Урок первый
ну и что, по-твоему, здесь написано?)
|
Ответ: Xors3D. Шейдеры. Урок первый
Скачай дебагер-то, всяко сподручнее чем лог.
|
Ответ: Xors3D. Шейдеры. Урок первый
Я уже поржал над собой ')'
Код:
index=tex2D(MixSampler,input.texCoords).r; Ошибка X3512: сэмплер индекс массива должен быть буквенное выражение (174): ID3DXEffectCompiler :: CompileEffect: Был выражение об ошибке компиляции ID3DXEffectCompiler: Компиляция не удалось |
Ответ: Xors3D. Шейдеры. Урок первый
а, ну да. в ps3_0 и ниже нельзя использовать честное динамическое индексирование в массив, увы. в вертексном можно.
ты можешь запихать текстуры в атлас или 3д текстуру и вместо индекса смещать текстурные координаты. |
Ответ: Xors3D. Шейдеры. Урок первый
Я решил смешивать текстуры без шейдеров, так как текстуры статичны и не особо большого размера
Пример Код:
IncludeFile "Xors3D.pbi":xGraphics3D(0,0,16,0,#False) |
Ответ: Xors3D. Шейдеры. Урок первый
Остался у кого-нибудь урок по шейдерам? помню это pdf файл, но у емня он задевался куда-то
Прошу выложите кто-нибудь, или на почту [email protected] Заранее спасибо) |
Часовой пояс GMT +4, время: 03:52. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot