Войти
OpenGL communityФорумУроки по OpenGL

Урок 4 - Свет, камера, материал! Часть 1 (комментарии) (3 стр)

Страницы: 1 2 3 4 Следующая »
#30
14:43, 31 окт. 2013

Silver Overlord
> либо несовместим с openGL 3.1.
Естественно, а почему он должен быть совместим если он для OpenGL 3.3? :)


#31
14:49, 31 окт. 2013

Ну да, но частично совместимость должна быть.

#32
15:15, 31 окт. 2013

В общем, проблем тут две:

Ругается на layout(location = ...).

Ругается на out Vertex {...
ERROR: 0:34: 'varying' : cannot be used with a block nor structure

#33
15:29, 31 окт. 2013

А вот это уже не радует:
Samplers cannot be structure or block members

#34
15:37, 31 окт. 2013

Вопрос какой-нибудь будет или нет? Что вы предлагаете нам делать с вашими ошибками? Разобраться за вас как перевести шейдер с GLSL 3.3 на 3.1? Так и говорите, так и спрашивайте, хватит тянуть кота за тестикулы.

#35
15:47, 31 окт. 2013

Ок. Вопрос такой: где можно почитать про отличия языков 1.40 и 3.30. Документацию не предлагать, ибо не хочется прочитывать параллельно два текста и сравнивать их :) Доходчивого сравнения не нашёл.

#36
15:58, 31 окт. 2013

Silver Overlord
> Документацию не предлагать
Подожди минутку, сейчас подготовлю табличку сравнительную.

Прошло более 2 лет
#37
13:51, 1 мар. 2016

Слушайте - Я что-то люто затупил!!!!!!!!!!!!!

Почему результат умножается на диффузную текстуру?????????????? Не пойму!!!!!!

Обычно я думал:

gl_FragColor.xyz = (N_dot_L*diffuseMap+V_dot_R*specularaMap)*lightColor*attenuation;

а тут оказывается:

gl_FragColor.xyz = (N_dot_L + V_dot_R*specularaMap)*lightColor*attenuation *diffuseMap ;

блик множится с диффузной текстурой, что крайне неясно..
как надо ПРАВИЛЬНО?

=================
при таком раскладе можно посчитать только световые пятна , как

for(eachLight)
gl_FragColor.xyz = (N_dot_L + V_dot_R*specularaMap)*lightColor*attenuation

а потом то что получилось умножить на материал, отделив его от света.

setBlend(multiply)
drawWorldAlbedo

#38
14:19, 1 мар. 2016

The Andreyp
Ты о чем вообще?

#39
14:53, 1 мар. 2016

KpeHDeJIb

формула рассчета цвета фрагмента - где есть

диф. текст.
спек текстура

какая из 2их данных мной - правильная?
по чему спекуляр блик множится на дифузную текс поверхности

в думе3 ваще левая формула какаято:

const half specularPower = 10.0f;
  half hDotN = dot3( normalize( fragment.texcoord6.xyz ), localNormal );
  half3 specularContribution = _half3( pow( hDotN, specularPower ) );

  half3 diffuseColor = diffuseMap * rpDiffuseModifier.xyz;
  half3 specularColor = specMap.xyz * specularContribution * rpSpecularModifier.xyz;
  half3 lightColor = dot3( lightVector, localNormal ) * lightProj.xyz * lightFalloff.xyz;

  result.color.xyz = ( diffuseColor + specularColor ) * lightColor * fragment.color.xyz;
#40
20:06, 1 мар. 2016

The Andreyp
> какая из 2их данных мной - правильная?
По логике - отдельно считаешь дифуз отдельно спекуляр и потом складываешь, но мало ли кто что понапишет, может "художник так видит" :)

> в думе3 ваще левая формула какаято:
Почему левая? Самая обычная, отдельно дифуз и спекуляр множится на цветное подкрашивание (видимо просто для красоты).

#41
22:48, 1 мар. 2016

KpeHDeJIb
я хотел сначала поссчитать всё - а потом то что получится от всех лайтсорсов умножить на текстуру в материале (или несколько текстур)
так я отделю лайтинг от материала

for(eachLight)
gl_FragColor.xyz = (N_dot_L + V_dot_R*specularaMap)*lightColor*attenuation

setBlend(multiply)
drawWorldAlbedo


норм так? (это форвард, не дс)

#42
10:59, 2 мар. 2016

The Andreyp
> в думе3 ваще левая формула какаято:

Ты делал реверс из arb ?

#43
11:05, 2 мар. 2016

innuendo
Это глсл из обновленного

#44
11:06, 2 мар. 2016

innuendo
Правильно ли я хочу считать?

Страницы: 1 2 3 4 Следующая »
OpenGL communityФорумУроки по OpenGL

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