Войти
ПрограммированиеФорумГрафика

Программирование шейдеров на HLSL. (Комментарии к статье)

Страницы: 1 2 310 11 Следующая »
#0
12:24, 2 июня 2004

Комментарий к Статье Программирование шейдеров на HLSL
Эта статья знакомит с программированием шейдеров на языке высокого уровня называемого High Level Shading Language. Здесь есть примеры и советы по оптимизации кода. Кроме всего, описываются различные модели освещения, используемые в компьютерной графике, и приведена, конечно же, их реализация при помощи HLSL.

#1
12:24, 2 июня 2004

Еще не дочитал, но я так понял это перевод из SDK. Хороший перевод, тока вот встретил опечатку:
step(a,x) Возвращает (x = a) ? 1 : 0.
original: Returns (x >= a) ? 1 : 0.
пошел дальше читать

#2
13:15, 2 июня 2004

Aroch
> я так понял это перевод из SDK
Нет, тут сборная солянка.

#3
14:11, 2 июня 2004

статья хорошая. наконец появилось хоть что-то по HLSL на русском языке. хотя есть ряд неприятных опечаток, и начинающие могут поиметь
неприятности, не зная о них.
вот, что нашёл беглым взглядом
Чем больше угол β, тем ярче бликовое освещение - по моему наоборот. но это теория, и к HLSL имеет малое отношение.

А вот так компилиться кажется не будет:

D3DVERTEXELEMENT9 decl[]=
{
//stream, offset, type, method, semantic type
{0,0, D3DDECLTYPE_FLOAT3,D3DDECLMETHOD_DEFAULT,D3DDECLUSAGE_POSITION,0},
{0,12,D3DDECLTYPE_FLOAT2,D3DDECLMETHOD_DEFAULT,D3DDECLUSAGE_NORMAL,  0},
{0,20,D3DDECLTYPE_FLOAT3,D3DDECLMETHOD_DEFAULT,D3DDECLUSAGE_TEXCOORD,0},
{0,32,D3DDECLTYPE_FLOAT3,D3DDECLMETHOD_DEFAULT,D3DDECLUSAGE_TANGENT, 0},
D3DDECL_END()
};
struct VS_INPUT_STRUCT
{
    float4 position: POSITION;  // Vertex position
    float3 normal:   NORMAL0;   // Vertex normal
    float2 texcoord: TEXCOORD0; // Vertex texcoord
    float3 tangent:  TANGENT;   // Tangent ( u )
    float3 binormal: BINORMAL;  // Binormal( v )
};
#4
16:08, 2 июня 2004

/*TANGENTn  Тангент.*/
нет такого слова тангент, есть тангенс.

/*Рассмотрим все подробнее, создадим простую модель освещения — равномерное освещение.*/
как то не по русски, может: ... , создав простую модель равномерного освещения.

/*Iambient=ka?Ia
Вершинный шейдер для расчета рассеянной модели освещения:*/
Начали про равномерное освещение, а далее обзываем его рассеянным...

/*Алгоритм для фрагментного шейдера:
1)Рассчитываем вектор искривления линии (Wooble или Skew), который равен суме текстурных координат и цвета из noise текстуры.*/

P.S.
я раньше не разбирался с шейдерами, видюха с ними не дружит, но после такой теории, принимавшим участие в написани статьи большой респект, теперь все стало понятно.

#5
16:18, 2 июня 2004

Aroch
>>/*TANGENTn Тангент.*/
>>нет такого слова тангент, есть тангенс.
как здесь уже не раз обсуждалось, по-русски это будет "пространство касательных" :-).

#6
17:04, 2 июня 2004

Aroch
>/*TANGENTn Тангент.*/
>нет такого слова тангент, есть тангенс.

нет, согласен. Но это не тангенс, это, можно сказать, касательная, но если так написать, кажется, не будет ясно.


>/*Iambient=ka?Ia
>Вершинный шейдер для расчета рассеянной модели освещения:*/
>Начали про равномерное освещение, а далее обзываем его рассеянным...

Это  я прогнал, не всё заменил :)

В целом — спасибо, поправлю.

#7
17:19, 2 июня 2004

Хорошая статья.
Тот глюк, которъй упомянул kroll нужно убрать.
Неплохо бъ бъло, для полности, вместо шейдера дерева, дать шейдер вертексной анимации и скелетной анимации. Там есть ньюансъ, того же HLSL, особенно когда надо целочисленнъе индексъ перевадать.
Нигде (imho) не сказано, что для данной семантики можно указать несколько типов, что является оптимизацией именно при передавании целочисленнъх параметров в компонентах вектора, скажем:

struct AppIn
{
   int4     ipos : POSITION0;
   float4  pos : POSITION0;
};

...

   int  bone = IN.ipos.w;
   float3 pos = IN.pos.xyz;
#8
17:20, 2 июня 2004

Ат блин пацаны, от блин молодцы - МОЙ ВАМ ПОКЛОН. Пускай это будет либо перевод, либо ваше действо, но это КЛАСС. Большое кол-во рисунков, примеров, кода - то что надо нам. Большое спасибо!!!

#9
17:23, 2 июня 2004

Zemedelec
Вроде, назревает часть за номером два. Можешь авторам намекнуть, о чём ещё написать :).

#10
17:47, 2 июня 2004

Ну, лучше етого места намекнуть нету вроде... :)

authors
Есще: порадует (всех) и пример скажем PCF и post-processing еффектов - там glow, distortion, tv screen, мягкость.
Ети штуки пойдут сразу на пользу местой 'толпъ' юзеров пишуших движки.

И да - в статье, где диффузное освещение есть картинка. Там на картинке никак не диффузное освещение, что в примере, так как теневая сторона 'бублика' должна бъть мрачно черной, из-за clamp-a dot-a в ноль. А там вроде и ambient есть. Ето неточность, но новичка может напугать.

#11
22:09, 2 июня 2004

Zemedelec
>>Есще: порадует (всех) и пример скажем PCF и post-processing еффектов - там glow, distortion, tv screen, >>мягкость.
Ну это можно, благо просто сделать. :) А вот с анимацией на шейдерах я не работал, поэтому даже не знаю, но попробовать стоит.
>>Нигде (imho) не сказано, что для данной семантики можно указать несколько типов, что является >>оптимизацией именно...
Хотели  во второй части.
p.s. за картинку бить Паронатора.

#12
22:47, 2 июня 2004

Респект товаришу Кеше и товарищу Проте.
Ура товарищи ! Всем бухать 3 дня и 3 ночи :-)

#13
13:02, 3 июня 2004

Круто, более обстоятельной статьи на русском ещё в жизни не видывал.

#14
17:47, 3 июня 2004

На счет tangent. Это просто трансляция на русский.
Я же в статье написал: "tangent space - касательное пространство."

Zamadelec
Да, ты прав, что то непохожо на diffuse,
там просто d_dot_l неправильно считался.
И к тому же там не просто diffuse, а там
diffuse + ambient.
Вот просто diffuse:
diffuse.gif | Программирование шейдеров на HLSL. (Комментарии к статье)
xaka,viv
Спасибо.

Ну не обещаю на счет 2-ой части, но можно...
Так как в статье есть туманные вещи, теперь я
их понимаю не туманно.

Страницы: 1 2 310 11 Следующая »
ПрограммированиеФорумГрафика