Re: Чи є майбутнє в Rust?
FakiNyan написав:якшо C такий крутий, тоді чого C++ юзається для ігор, а не C
▼Прихований текст
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Rust → Чи є майбутнє в Rust?
Для відправлення відповіді ви повинні увійти або зареєструватися
FakiNyan написав:якшо C такий крутий, тоді чого C++ юзається для ігор, а не C
▼Прихований текст
Так, в С++ є спецяльний синтаксис для ООП, натомість ООП чи функційний підхід можна застосовувати і в С і в асемблері.
wander написав:FakiNyan написав:якшо C такий крутий, тоді чого C++ юзається для ігор, а не C
▼Прихований текст▼Прихований текст
Тому, якщо десь і потрібно буде використати С чи asm, то зазвичай лиш у вигляді точкових оптимізацій, якщо потрібно.
А як щодо шейдерів? Я сам далек від комп'ютерної грахвіки, але чув, що їхнє написання далеке від ООП.
Тому, якщо десь і потрібно буде використати С чи asm, то зазвичай лиш у вигляді точкових оптимізацій, якщо потрібно.
А як щодо шейдерів? Я сам далек від комп'ютерної грахвіки, але чув, що їхнє написання далеке від ООП.
там своя мова, glsl зветься, чи якось так, і там ніякого ооп я не видів, коли бавився з ними багато років тому, там більше математику тре знати, особливо лінійну алгебру, шарити в матрицях і т.д.
Так, в С++ є спецяльний синтаксис для ООП, натомість ООП чи функційний підхід можна застосовувати і в С і в асемблері.
Отожбо.
Ядро лінукса по суті все на об'єктах аж до віртуальних деструкторів у термінології C++
Борландівський асемблер колись давно (з часів Borland C++ 4.5x туди не зазирав, що там зараз не знаю) взагалі мав розширення синтаксису для полегшення створення/використання VMT та звертання до полів об'єкта -- зменшував рутинну писанину адресації зміщенням відносно базового регістра те-се.
Тому, якщо десь і потрібно буде використати С чи asm, то зазвичай лиш у вигляді точкових оптимізацій, якщо потрібно.
А як щодо шейдерів? Я сам далек від комп'ютерної грахвіки, але чув, що їхнє написання далеке від ООП.
Благо шейдери дуже далекі від ООП. Я не знаю жодної шейдерної мови де б було ООП. Там фактично, класична процедурка.
Наприклад, Metal Shading Language (MSL), це фактично С++14, але звідти викинули всякі ООП, виключення, динамічні касти і тд мусор (шаблони залишили). Просто тому, що там це не потрібне.
там більше математику тре знати, особливо лінійну алгебру, шарити в матрицях і т.д.
В першу чергу тре шарити за те як працює відеокарта та GPGPU.
0xDADA11C7 написав:Тому, якщо десь і потрібно буде використати С чи asm, то зазвичай лиш у вигляді точкових оптимізацій, якщо потрібно.
А як щодо шейдерів? Я сам далек від комп'ютерної грахвіки, але чув, що їхнє написання далеке від ООП.
Благо шейдери дуже далекі від ООП. Я не знаю жодної шейдерної мови де б було ООП. Там фактично, класична процедурка.
Наприклад, Metal Shading Language (MSL), це фактично С++14, але звідти викинули всякі ООП, виключення, динамічні касти і тд мусор (шаблони залишили). Просто тому, що там це не потрібне.
От для шейдерів по-вашому благо, що мову обмежили, а для іншого софту - ні. Поясніть.
0xDADA11C7 написав:Тому, якщо десь і потрібно буде використати С чи asm, то зазвичай лиш у вигляді точкових оптимізацій, якщо потрібно.
А як щодо шейдерів? Я сам далек від комп'ютерної грахвіки, але чув, що їхнє написання далеке від ООП.
Благо шейдери дуже далекі від ООП. Я не знаю жодної шейдерної мови де б було ООП. Там фактично, класична процедурка.
Наприклад, Metal Shading Language (MSL), це фактично С++14, але звідти викинули всякі ООП, виключення, динамічні касти і тд мусор (шаблони залишили). Просто тому, що там це не потрібне.FakiNyan написав:там більше математику тре знати, особливо лінійну алгебру, шарити в матрицях і т.д.
В першу чергу тре шарити за те як працює відеокарта та GPGPU.
та нє, я без цього обходився, і щось та й виходило. Спершу все ж таки треба шарити в тих математиках.
От для шейдерів по-вашому благо, що мову обмежили, а для іншого софту - ні. Поясніть.
Дивлячись, що ви маєте на увазі під "іншим софтом".
Шейдери, це більш примітивні програмки, які ми просимо виконати на GPU. Ми хочемо відмалювати мільйон вершин, а ще освітлення, тіні, можливо навіть raytracing і це все на GPU, і це все тре вкласти в 0.016ms (для 60fps), от ще ООП тут тільки не хватало.
На CPU вже теж намагаються відходити від класичного ООП в сторону DOD та ECS. А там всякі поліморфізми, взагалі не робити, на крайняк через CRTP або std::variant. То нащо нам ця деградація на GPU?
та нє, я без цього обходився, і щось та й виходило. Спершу все ж таки треба шарити в тих математиках.
Тре шарити точно так само, як і для написання програм для CPU. Шейдер може не містити математики взагалі і все ще щось малювати. Хоча, так, математики в графіці, напевно, все-таки більше. Але це лише через те, що ми хочемо емулювати наш реальний світ, у віртуальному просторі, а це на жаль чи на щастя робиться завдяки (лише) математиці.
0xDADA11C7 написав:От для шейдерів по-вашому благо, що мову обмежили, а для іншого софту - ні. Поясніть.
Дивлячись, що ви маєте на увазі під "іншим софтом".
Шейдери, це більш примітивні програмки, які ми просимо виконати на GPU. Ми хочемо відмалювати мільйон вершин, а ще освітлення, тіні, можливо навіть raytracing і це все на GPU, і це все тре вкласти в 0.016ms (для 60fps), от ще ООП тут тільки не хватало.
На CPU вже теж намагаються відходити від класичного ООП в сторону DOD та ECS. А там всякі поліморфізми, взагалі не робити, на крайняк через CRTP або std::variant. То нащо нам ця деградація на GPU?FakiNyan написав:та нє, я без цього обходився, і щось та й виходило. Спершу все ж таки треба шарити в тих математиках.
Тре шарити точно так само, як і для написання програм для CPU. Шейдер може не містити математики взагалі і все ще щось малювати.
в моєму випадку там вже був базовий бойлерплейт з якимось альбедо. І мені треба була лише математика, аби робити якісь базові преколи. Це вже для чогось серйозного тре було розбиратись, як воно там влаштовано (і я з цим так і не розібрався тоді, але якби захотів, то зараз зміг би розібратись, бо дуже вумний вже, трохи).
Unity рекламувалась як щось просте, в що кожен може зайти, тому вони і шейдери зробили такими, аби кожен міг з ними почати бавитись. Вони навіть були зробили щось своє - Surface shader, що потім компілилось/транспайлилось в звичайні шейдери.
wander написав:0xDADA11C7 написав:От для шейдерів по-вашому благо, що мову обмежили, а для іншого софту - ні. Поясніть.
Дивлячись, що ви маєте на увазі під "іншим софтом".
Шейдери, це більш примітивні програмки, які ми просимо виконати на GPU. Ми хочемо відмалювати мільйон вершин, а ще освітлення, тіні, можливо навіть raytracing і це все на GPU, і це все тре вкласти в 0.016ms (для 60fps), от ще ООП тут тільки не хватало.
На CPU вже теж намагаються відходити від класичного ООП в сторону DOD та ECS. А там всякі поліморфізми, взагалі не робити, на крайняк через CRTP або std::variant. То нащо нам ця деградація на GPU?FakiNyan написав:та нє, я без цього обходився, і щось та й виходило. Спершу все ж таки треба шарити в тих математиках.
Тре шарити точно так само, як і для написання програм для CPU. Шейдер може не містити математики взагалі і все ще щось малювати.
в моєму випадку там вже був базовий бойлерплейт з якимось альбедо. І мені треба була лише математика, аби робити якісь базові преколи. Це вже для чогось серйозного тре було розбиратись, як воно там влаштовано (і я з цим так і не розібрався тоді, але якби захотів, то зараз зміг би розібратись, бо дуже вумний вже, трохи).
Unity рекламувалась як щось просте, в що кожен може зайти, тому вони і шейдери зробили такими, аби кожен міг з ними почати бавитись. Вони навіть були зробили щось своє - Surface shader, що потім компілилось/транспайлилось в звичайні шейдери.
Чесно скажу, ніколи не бавився з Unity.
Лише повторюсь, що математика нам потрібна, бо ми хочемо малювати, те, що малюється через математику. Хочемо намалювати трикутник - звертаємось до математики, хочемо емулювати освітлення - звертаємось до математики і тд.
До слова: https://lkml.org/lkml/2021/12/6/461
До слова: https://lkml.org/lkml/2021/12/6/461
Розмови про це давно чув. Звісно, це буде визнанням.
Для відправлення відповіді ви повинні увійти або зареєструватися