Size: a a a

RU Rust GameDev — русскоговорящее сообщество

2020 December 04

KK

Kirill (Cykooz) Kuzm... in RU Rust GameDev — русскоговорящее сообщество
Mikola Summer Duck
Но это могут быть и дваде-полигоны с текстурой, что мешает-то.
А зачем в видео карте делать отдельный примитив 2d-вершина, если и 3d работают достаточно быстро (особенно для 2d игр, где не так много полигонов обычно).
источник

KK

Kirill (Cykooz) Kuzm... in RU Rust GameDev — русскоговорящее сообщество
И при этом ещё как-то отдельно реализовывать "слои", если в 3d это получается автоматом.
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Kirill (Cykooz) Kuzminykh
А зачем в видео карте делать отдельный примитив 2d-вершина, если и 3d работают достаточно быстро (особенно для 2d игр, где не так много полигонов обычно).
В видеокарте нет примитива с 3д-вершинами.
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
🤔 хотя технически есть, но с 4д.
источник

KK

Kirill (Cykooz) Kuzm... in RU Rust GameDev — русскоговорящее сообщество
В общем я как чукча - пою о том что вижу. А вижу я что в игровых движках которые или ориентируются только на 2d или поддерживают 2d, все спрайты и даже банальные фигуры ("прямоугольники", "круги" и др) в реальности реализуются через 3d полигоны с текстурами и шейдерами. Неужели бы они не сделали "честное" 2d если бы это было дешевле и быстрее?
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Ну это ведь обычно 3д движки с поддержкой 2д.
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
И в таком случае если ты хочешь наложение то тебе в любом случае придется использовать 3д вертексы.
источник

KK

Kirill (Cykooz) Kuzm... in RU Rust GameDev — русскоговорящее сообщество
Mikola Summer Duck
Ну это ведь обычно 3д движки с поддержкой 2д.
Ну вот есть ggez - https://github.com/ggez/ggez
Который позиционирует себя как только 2d. Но внутри у него всё на самом деле в 3d сделано.
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
(афк, потом ещё поспорим)
источник

KK

Kirill (Cykooz) Kuzm... in RU Rust GameDev — русскоговорящее сообщество
Mikola Summer Duck
И в таком случае если ты хочешь наложение то тебе в любом случае придется использовать 3д вертексы.
Ну вот я про это и говорю - зачем делать в видеокарте отдельную абстракцию для реализации слоёв для 2d графики, если можно просто каждый слой рассматривать как 3d плоскость, для которой уже реализованы все алгоритмы сортировки и наложения?
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Kirill (Cykooz) Kuzminykh
Ну вот я про это и говорю - зачем делать в видеокарте отдельную абстракцию для реализации слоёв для 2d графики, если можно просто каждый слой рассматривать как 3d плоскость, для которой уже реализованы все алгоритмы сортировки и наложения?
Потому что ты можешь случайно сделать поворот не в той оси, например.
источник

p

polunin.ai in RU Rust GameDev — русскоговорящее сообщество
Mikola Summer Duck
Потому что ты можешь случайно сделать поворот не в той оси, например.
>случайно
Когда кому-то баги мешали? Вон на крестах пишут а там много плохого можно случайно сделать :)
источник

KK

Kirill (Cykooz) Kuzm... in RU Rust GameDev — русскоговорящее сообщество
Mikola Summer Duck
Потому что ты можешь случайно сделать поворот не в той оси, например.
Что значит "случайно"? Если так размышлять, то случайно можно и rm -rf выполнить.
Если боишься что сделаешь опечатку и угол поворота вставишь не в тот аргумент, то можешь сделать функцию обёртку, которая будет принимать только один угол поворота, а не несколько.
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
А можно использовать только две координаты и исключить связанный с этим класс проблем, ну.
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Alexander Tchitchigin
ЧСХ, я что-то не помню координаты z во фрагментных шейдерах. 🧐
Конечно она есть, глубина.
источник

KK

Kirill (Cykooz) Kuzm... in RU Rust GameDev — русскоговорящее сообщество
Mikola Summer Duck
А можно использовать только две координаты и исключить связанный с этим класс проблем, ну.
Ну это будет не более чем очередная обёртка вокруг 3d. Но слои всё равно придётся делать через Z координату. Вы можете только скрыть это от пользователей вашего API с помощью специальной абстракции.
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Kirill (Cykooz) Kuzminykh
Ну это будет не более чем очередная обёртка вокруг 3d. Но слои всё равно придётся делать через Z координату. Вы можете только скрыть это от пользователей вашего API с помощью специальной абстракции.
Да, но эту координату не придётся отправлять с каждым вертексом. Эффективность! 😁
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Kirill (Cykooz) Kuzminykh
Ну это будет не более чем очередная обёртка вокруг 3d. Но слои всё равно придётся делать через Z координату. Вы можете только скрыть это от пользователей вашего API с помощью специальной абстракции.
И так-то для моего кода это не будет обёртка вокруг 3д — на видеокарту я отправляю 2д-вертексы.
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Mikola Summer Duck
Да, но эту координату не придётся отправлять с каждым вертексом. Эффективность! 😁
Для эффективности надо просто 3 координаты закодировать в 32 бита
источник

KK

Kirill (Cykooz) Kuzm... in RU Rust GameDev — русскоговорящее сообщество
Mikola Summer Duck
Да, но эту координату не придётся отправлять с каждым вертексом. Эффективность! 😁
На вехнем уровне - да, но прежде чем передать это всё в 3d API придётся эту Z добавлять налету.
источник