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

Vulkan API (вышел!) (426 стр)

Страницы: 1425 426 427 428440 Следующая »
#6375
7:28, 20 фев. 2020

Andrey
зачем нужен этот glsl?


#6376
13:51, 20 фев. 2020

Andrey
> Результаты опроса от LunarG
Там хороший вопрос был

Question 19: What is your front-end for creating SPIR-V?

И какие хорошие там результаты)
#6377
18:02, 20 фев. 2020

Привет. Есть вопрос недостойный отдельной темы. Можно ли в рантайме как-то транслировать код glhl в spirv?
Хочется такого синтаксиса:

  std::string glhlToSpirv(const std::string& glhlCode);
#6378
0:50, 21 фев. 2020

vindast
https://github.com/google/shaderc ?

#6379
7:07, 21 фев. 2020

innuendo
> зачем нужен этот glsl?
мне кстати субъективно синтаксис glsl нравится больше, чем майкрософтовский. хоть он и прибит немного гвоздями к opengl.

#6380
7:40, 21 фев. 2020

Suslik
просто кто-то не смог сделать загрузку за 1 вызов в glsl - старая больная тема

#6381
8:37, 21 фев. 2020

Suslik
> мне кстати субъективно синтаксис glsl нравится больше
А чем именно? Я просто вижу и плюсы и минусы у обеих языков, но у hlsl плюсов побольше как по мне.

#6382
9:46, 21 фев. 2020

MrShoor
мне больше нравится байндинг ресурсов через layout(set = 0, binding = 0), чем через регистры hlsl. больше нравится семплинг текстур через функции, чем через методы. больше нравятся встроенные семантики вроде gl_Position против SV_POSITION. хотя в hlsl лучше сделано именование типов вроде int2 вместо глупого glsl'ного ivec2. ещё в hlsl лучше продумали умножение матриц через mul и покомпонентное умножение оператором.

#6383
(Правка: 10:51) 10:35, 21 фев. 2020

Suslik
> мне больше нравится байндинг ресурсов через layout(set = 0, binding = 0), чем через регистры hlsl. больше нравится семплинг текстур через функции, чем через методы. больше нравятся встроенные семантики вроде gl_Position против SV_POSITION. хотя в hlsl лучше сделано именование типов вроде int2 вместо глупого glsl'ного ivec2. ещё в hlsl лучше продумали умножение матриц через mul и покомпонентное умножение оператором.
При том что забыли упомянуть например Row_Major или Column_Major происхождение этих матриц...
При GLSL это куда более очевидно, особенно при GLM с транспонированием такой матрицы это заметно.
А в DirectX 12 это куда проще, ведь там всегда Row_Major. Тоже самое и про затраты с самих видеокарт.
Но Я всё равно НЕ защищаю сторонников GLSL, хотя бы потому что 95% населения его НЕ правильно используют..., и это проверено моим тогдашними опытами...

А что не правильно? А то, что надо оперировать в GLSL вот так вот...

vec4 position = vertex * modelView * projection;

А не так...

vec4 position = projection * modelView * vertex;

И ещё надо транспонировать матрицу если у вас GLM, либо если используйте OpenGL, то поставить флажок transpose=true в Uniform*(matrix, true)

#6384
(Правка: 13:03) 13:03, 21 фев. 2020

helix.d
> А что не правильно? А то, что надо оперировать в GLSL вот так вот...
> vec4 position = vertex * modelView * projection;
кому надо? как матрицы хранишь, с той стороны и умножаешь. тут нету правильного или неправильного варианта, если ты понимаешь, что делаешь.

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

#6385
(Правка: 13:20) 13:14, 21 фев. 2020

helix.d
> При GLSL это куда более очевидно, особенно при GLM с транспонированием такой
> матрицы это заметно.
> А в DirectX 12 это куда проще, ведь там всегда Row_Major.
Одинаковые там матрицы! Абсолютно одинаково лежат в памяти и считаются одинаковыми алгоритмами. Разница в названии и печати этих матриц в документации, программно никакой разницы нет! Не надо гнать!

helix.d
> vec4 position = vertex * modelView * projection;
> vec4 position = projection * modelView * vertex;
Эти записи друг другу эквивалентны для разного обозначения матриц. Алгоритм в данном случае не меняется.

Row_Major DX = Column_Major GL

#6386
(Правка: 13:17) 13:16, 21 фев. 2020

helix.d

А в DirectX 12 это куда проще, ведь там всегда Row_Major.

Нет не всегда.

#6387
13:27, 21 фев. 2020

вы еще матрицы в питоне не видели(где касты операций с матрицами это целые заклинания из десятка слов)
и люди както осиливают и пишут нейросети на питоне

#6388
(Правка: 13:32) 13:31, 21 фев. 2020
и люди както осиливают и пишут нейросети на питоне

Там часть кода уже в кишках питона есть.
В основном скрипт пишут на питоне.

Знакомый делал простую нейросеть на питоне.
Скрипт получился на 14 килобайт.

Понятно что это не написанная с нуля нейросеть.

#6389
14:04, 21 фев. 2020

Danilw
> и люди както осиливают и пишут нейросети на питоне

Потому что люди пишут не на питоне, а на библиотеке tensorflow, которая написана на крестах и cuda.

Страницы: 1425 426 427 428440 Следующая »
ПрограммированиеФорумГрафика