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

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

Страницы: 1 2 39 10 Следующая »
#0

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

2 июня 2004


#1

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

2 июня 2004

#2

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

2 июня 2004

#3

статья хорошая. наконец появилось хоть что-то по 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 )
};

2 июня 2004

#4

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

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

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

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

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

2 июня 2004

#5

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

2 июня 2004

#6

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

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


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

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

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

2 июня 2004

#7

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

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

...

   int  bone = IN.ipos.w;
   float3 pos = IN.pos.xyz;

2 июня 2004

#8

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

2 июня 2004

#9

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

2 июня 2004

#10

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

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

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

2 июня 2004

#11

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

2 июня 2004

#12

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

2 июня 2004

#13

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

3 июня 2004

#14

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

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

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

3 июня 2004

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

Тема в архиве.