21 Востаннє редагувалося FakiNyan (07.12.2021 18:01:44)

Re: Чи є майбутнє в Rust?

wander написав:
FakiNyan написав:

якшо C такий крутий, тоді чого C++ юзається для ігор, а не C

Прихований текст

Питання рівня, а чому на асемблі не пишуть повноцінно програм?
Питання риторичне.

Прихований текст

ви, мабуть, хочете сказати, що с++ має якісь фічі, які значно пришвидшують та полегшують написання ігор. Це ООП ?

22

Re: Чи є майбутнє в Rust?

Так, в С++ є спецяльний синтаксис для ООП, натомість ООП чи функційний підхід можна застосовувати і в С і в асемблері.

Подякували: ReAl1

23

Re: Чи є майбутнє в Rust?

FakiNyan написав:
wander написав:
FakiNyan написав:

якшо C такий крутий, тоді чого C++ юзається для ігор, а не C

Прихований текст

Питання рівня, а чому на асемблі не пишуть повноцінно програм?
Питання риторичне.

Прихований текст

ви, мабуть, хочете сказати, що с++ має якісь фічі, які значно пришвидшують та полегшують написання ігор. Це ООП ?

Прихований текст

Так, і далеко не лише ООП. Взагалі, я б навіть сказав зовсім не через ООП. Тут швидше йдеться про можливість написання добре структурованого, легко читаного, більш чистого коду. Завдяки тому, що С++ має доволі широкий функціонал з коробки і зовсім не обмежує вас писати саме ООП код, ну, і звісно, тонна бібліотек (в тому числі і stdlib), які просто бери та використовуй. Звісно, можна і на asm/C так робити, але мало хто матиме за приємне *батись з цим :)
Тому, якщо десь і потрібно буде використати С чи asm, то зазвичай лиш у вигляді точкових оптимізацій, якщо потрібно.

Подякували: FakiNyan1

24

Re: Чи є майбутнє в Rust?

Тому, якщо десь і потрібно буде використати С чи asm, то зазвичай лиш у вигляді точкових оптимізацій, якщо потрібно.

А як щодо шейдерів? Я сам далек від комп'ютерної грахвіки, але чув, що їхнє написання далеке від ООП.

25

Re: Чи є майбутнє в Rust?

0xDADA11C7 написав:

Тому, якщо десь і потрібно буде використати С чи asm, то зазвичай лиш у вигляді точкових оптимізацій, якщо потрібно.

А як щодо шейдерів? Я сам далек від комп'ютерної грахвіки, але чув, що їхнє написання далеке від ООП.

там своя мова, glsl зветься, чи якось так, і там ніякого ооп я не видів, коли бавився з ними багато років тому, там більше математику тре знати, особливо лінійну алгебру, шарити в матрицях і т.д.

Подякували: leofun011

26

Re: Чи є майбутнє в Rust?

0xDADA11C7 написав:

Так, в С++ є спецяльний синтаксис для ООП, натомість ООП чи функційний підхід можна застосовувати і в С і в асемблері.

Отожбо.

Ядро лінукса по суті все на об'єктах аж до віртуальних деструкторів у термінології C++

Борландівський асемблер колись давно (з часів Borland C++ 4.5x туди не зазирав, що там зараз не знаю) взагалі мав розширення синтаксису для полегшення створення/використання VMT та звертання до полів об'єкта -- зменшував рутинну писанину адресації зміщенням відносно базового регістра те-се.

Подякували: 0xDADA11C71

27 Востаннє редагувалося wander (07.12.2021 19:45:53)

Re: Чи є майбутнє в Rust?

0xDADA11C7 написав:

Тому, якщо десь і потрібно буде використати С чи asm, то зазвичай лиш у вигляді точкових оптимізацій, якщо потрібно.

А як щодо шейдерів? Я сам далек від комп'ютерної грахвіки, але чув, що їхнє написання далеке від ООП.

Благо шейдери дуже далекі від ООП. Я не знаю жодної шейдерної мови де б було ООП. Там фактично, класична процедурка.
Наприклад, Metal Shading Language (MSL), це фактично С++14, але звідти викинули всякі ООП, виключення, динамічні касти і тд мусор (шаблони залишили). Просто тому, що там це не потрібне. :)

FakiNyan написав:

там більше математику тре знати, особливо лінійну алгебру, шарити в матрицях і т.д.

В першу чергу тре шарити за те як працює відеокарта та GPGPU.

Подякували: 0xDADA11C71

28

Re: Чи є майбутнє в Rust?

wander написав:
0xDADA11C7 написав:

Тому, якщо десь і потрібно буде використати С чи asm, то зазвичай лиш у вигляді точкових оптимізацій, якщо потрібно.

А як щодо шейдерів? Я сам далек від комп'ютерної грахвіки, але чув, що їхнє написання далеке від ООП.

Благо шейдери дуже далекі від ООП. Я не знаю жодної шейдерної мови де б було ООП. Там фактично, класична процедурка.
Наприклад, Metal Shading Language (MSL), це фактично С++14, але звідти викинули всякі ООП, виключення, динамічні касти і тд мусор (шаблони залишили). Просто тому, що там це не потрібне. :)

От для шейдерів по-вашому благо, що мову обмежили, а для іншого софту - ні. Поясніть.

29

Re: Чи є майбутнє в Rust?

wander написав:
0xDADA11C7 написав:

Тому, якщо десь і потрібно буде використати С чи asm, то зазвичай лиш у вигляді точкових оптимізацій, якщо потрібно.

А як щодо шейдерів? Я сам далек від комп'ютерної грахвіки, але чув, що їхнє написання далеке від ООП.

Благо шейдери дуже далекі від ООП. Я не знаю жодної шейдерної мови де б було ООП. Там фактично, класична процедурка.
Наприклад, Metal Shading Language (MSL), це фактично С++14, але звідти викинули всякі ООП, виключення, динамічні касти і тд мусор (шаблони залишили). Просто тому, що там це не потрібне. :)

FakiNyan написав:

там більше математику тре знати, особливо лінійну алгебру, шарити в матрицях і т.д.

В першу чергу тре шарити за те як працює відеокарта та GPGPU.

та нє, я без цього обходився, і щось та й виходило. Спершу все ж таки треба шарити в тих математиках.

Подякували: 0xDADA11C71

30 Востаннє редагувалося wander (07.12.2021 20:18:55)

Re: Чи є майбутнє в Rust?

0xDADA11C7 написав:

От для шейдерів по-вашому благо, що мову обмежили, а для іншого софту - ні. Поясніть.

Дивлячись, що ви маєте на увазі під "іншим софтом".
Шейдери, це більш примітивні програмки, які ми просимо виконати на GPU. Ми хочемо відмалювати мільйон вершин, а ще освітлення, тіні, можливо навіть raytracing і це все на GPU, і це все тре вкласти в 0.016ms (для 60fps), от ще ООП тут тільки не хватало.
На CPU вже теж намагаються відходити від класичного ООП в сторону DOD та ECS. А там всякі поліморфізми, взагалі не робити, на крайняк через CRTP або std::variant. То нащо нам ця деградація на GPU?

FakiNyan написав:

та нє, я без цього обходився, і щось та й виходило. Спершу все ж таки треба шарити в тих математиках.

Тре шарити точно так само, як і для написання програм для CPU. Шейдер може не містити математики взагалі і все ще щось малювати. Хоча, так, математики в графіці, напевно, все-таки більше. Але це лише через те, що ми хочемо емулювати наш реальний світ, у віртуальному просторі, а це на жаль чи на щастя робиться завдяки (лише) математиці.

Подякували: 0xDADA11C7, bebyk, leofun013

31

Re: Чи є майбутнє в Rust?

wander написав:
0xDADA11C7 написав:

От для шейдерів по-вашому благо, що мову обмежили, а для іншого софту - ні. Поясніть.

Дивлячись, що ви маєте на увазі під "іншим софтом".
Шейдери, це більш примітивні програмки, які ми просимо виконати на GPU. Ми хочемо відмалювати мільйон вершин, а ще освітлення, тіні, можливо навіть raytracing і це все на GPU, і це все тре вкласти в 0.016ms (для 60fps), от ще ООП тут тільки не хватало.
На CPU вже теж намагаються відходити від класичного ООП в сторону DOD та ECS. А там всякі поліморфізми, взагалі не робити, на крайняк через CRTP або std::variant. То нащо нам ця деградація на GPU?

FakiNyan написав:

та нє, я без цього обходився, і щось та й виходило. Спершу все ж таки треба шарити в тих математиках.

Тре шарити точно так само, як і для написання програм для CPU. Шейдер може не містити математики взагалі і все ще щось малювати.

в моєму випадку там вже був базовий бойлерплейт з якимось альбедо. І мені треба була лише математика, аби робити якісь базові преколи. Це вже для чогось серйозного тре було розбиратись, як воно там влаштовано (і я з цим так і не розібрався тоді, але якби захотів, то зараз зміг би розібратись, бо дуже вумний вже, трохи).
Unity рекламувалась як щось просте, в що кожен може зайти, тому вони і шейдери зробили такими, аби кожен міг з ними почати бавитись. Вони навіть були зробили щось своє - Surface shader, що потім компілилось/транспайлилось в звичайні шейдери.

Подякували: 0xDADA11C71

32

Re: Чи є майбутнє в Rust?

FakiNyan написав:
wander написав:
0xDADA11C7 написав:

От для шейдерів по-вашому благо, що мову обмежили, а для іншого софту - ні. Поясніть.

Дивлячись, що ви маєте на увазі під "іншим софтом".
Шейдери, це більш примітивні програмки, які ми просимо виконати на GPU. Ми хочемо відмалювати мільйон вершин, а ще освітлення, тіні, можливо навіть raytracing і це все на GPU, і це все тре вкласти в 0.016ms (для 60fps), от ще ООП тут тільки не хватало.
На CPU вже теж намагаються відходити від класичного ООП в сторону DOD та ECS. А там всякі поліморфізми, взагалі не робити, на крайняк через CRTP або std::variant. То нащо нам ця деградація на GPU?

FakiNyan написав:

та нє, я без цього обходився, і щось та й виходило. Спершу все ж таки треба шарити в тих математиках.

Тре шарити точно так само, як і для написання програм для CPU. Шейдер може не містити математики взагалі і все ще щось малювати.

в моєму випадку там вже був базовий бойлерплейт з якимось альбедо. І мені треба була лише математика, аби робити якісь базові преколи. Це вже для чогось серйозного тре було розбиратись, як воно там влаштовано (і я з цим так і не розібрався тоді, але якби захотів, то зараз зміг би розібратись, бо дуже вумний вже, трохи).
Unity рекламувалась як щось просте, в що кожен може зайти, тому вони і шейдери зробили такими, аби кожен міг з ними почати бавитись. Вони навіть були зробили щось своє - Surface shader, що потім компілилось/транспайлилось в звичайні шейдери.

Чесно скажу, ніколи не бавився з Unity.
Лише повторюсь, що математика нам потрібна, бо ми хочемо малювати, те, що малюється через математику. Хочемо намалювати трикутник - звертаємось до математики, хочемо емулювати освітлення - звертаємось до математики і тд.

33

Re: Чи є майбутнє в Rust?

ну та

34

Re: Чи є майбутнє в Rust?

До слова: https://lkml.org/lkml/2021/12/6/461

Подякували: ReAl, bebyk, leofun013

35

Re: Чи є майбутнє в Rust?

koala написав:

До слова: https://lkml.org/lkml/2021/12/6/461

Розмови про це давно чув. Звісно, це буде визнанням.