Навигация
Поддержать материально
Steam Greenlight

Логотипы
Медальки
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Темы форума
139 - RPG V
Сегодня, 18:01
 RepKa
О сайтике
Вчера, 19:14
 VanyaR1
139 - Arachnoguar...
20.01.2017
 KregHek
Продвижение игр и...
18.01.2017
 alexey_tilly
Blast-off
17.01.2017
 Darthman
[2D] Star Elevati...
16.01.2017
 SINILIAN
Разрешите предста...
16.01.2017
 Melf
Silone.Online TBS...
13.01.2017
 KregHek
The Humble 2K Bundle
13.01.2017
 pelmenka
2017||RM
11.01.2017
 SkyNET
Сейчас на сайте
Гостей: 3
На сайте нет зарегистрированных пользователей

Пользователей: 1,759
новичок: kskuhlcwFW
Обсуждение «3D Virtual Pool [Free Fall]»
Страница 1 из 3 1 2 3 >
VanyaR1
Avatar пользователя

Опубликовано 23.11.2016 19:06 (2 месяца назад)    #
Минимальный набор софтварной 3D-рисовалки почти готов. Долго решал какую демо-игру сделать для самописного рендеринга. Хотел вначале сделать бродилку в лабиринте, немного пытался экспериментировать, квадратные комнаты не понравились, решил, что сделаю трехмерный бильярд, думаю играть в него будет интереснее.
Как-то попадались правила одной игры в бильярд, в моей игре они будут примерно такими:
# На столе 6 шаров и один бьющий.
# Нужно загнать все шары, кроме бьющего, в лузу.
# У каждого шара есть номер, это его балл. На основе балла считается итоговая оценка.
# У игрока есть 5 попыток загнать шар в лузу, иначе проигрыш.
# Если бьющий шар попал в лузу, то проигрыш.
# В игре 5 уровней, чем выше уровень, тем меньше попыток у игрока.
# У каждой лузы есть своя цена.
# Итоговая оценка вычисляется по формуле: номер_шара * цена_лузы * уровнь
Пока так.

Скриншоты чуть позже!

редакция от VanyaR1, 23.11.2016 19:07

RPG V:Не участвую.
Darthman
Древний организм
Avatar пользователя

Опубликовано 24.11.2016 08:59 (2 месяца назад)    #
Даешь клон вульфенштейна!
RPG V:Не участвую.
Mefistofel
Инженер‑космогоник
Avatar пользователя

Опубликовано 24.11.2016 10:25 (2 месяца назад)    #
А мне наоборот план нравится. Очень хороший тест, игра простенькая, но со вкусом.
RPG V:Не участвую.
VanyaR1
Avatar пользователя

Опубликовано 24.11.2016 15:27 (2 месяца назад)    #
Моделирую стол и настраиваю текстуру. Оказалась не так просто сделать текстурные координаты. Познакомился с UV-разверткой. Надеюсь не криво получилось
RPG V:Не участвую.
VanyaR1
Avatar пользователя

Опубликовано 24.11.2016 18:56 (2 месяца назад)    #
Со сложной разверткой что-то пошло не так. Сделал поменьше полигонов. Загружается нормально:
RPG V:Не участвую.
Mefistofel
Инженер‑космогоник
Avatar пользователя

Опубликовано 24.11.2016 19:12 (2 месяца назад)    #
да, развертка - это ад.
Начал бы лучше с примитивов, зачем тебе натуральный стол сразу?
RPG V:Не участвую.
Zer0
Avatar пользователя

Опубликовано 24.11.2016 21:14 (2 месяца назад)    #
Гм, скоро понадобится mip-mapping :)
RPG V:Не участвую.
Darthman
Древний организм
Avatar пользователя

Опубликовано 25.11.2016 08:53 (2 месяца назад)    #
И анизотропная фильтрация, да. Ну или билинейная\трилинейная на крайняк.
RPG V:Не участвую.
VanyaR1
Avatar пользователя

Опубликовано 26.11.2016 09:43 (2 месяца назад)    #
Гм, скоро понадобится mip-mapping :)

И анизотропная фильтрация, да. Ну или билинейная\трилинейная на крайняк.

Да, нужные вещи. В будущем попробую тоже реализовать.

А вот мне стало интересно. Есть 3 способа создать mip-карты, и в один из них создается средствами видеокарты. Эта функция входит в стандартную функциональность видеокарт или может отсутствовать? По сути это очень важная оптимизация. Забавный пример: для объекта в 3 пикселя натянуть 1024х1024 текстуру:)

редакция от VanyaR1, 26.11.2016 09:44

RPG V:Не участвую.
VanyaR1
Avatar пользователя

Опубликовано 26.11.2016 09:49 (2 месяца назад)    #
Mefistofel написал:
да, развертка - это ад.
Начал бы лучше с примитивов, зачем тебе натуральный стол сразу?

А вообще очень странно в 3д редакторе (я делаю в Blender'е) итоговые полигоны из obj файла не соответствуют тем, что в редакторе.
Сейчас пробую простенькое освещение. Еще сделал видео, но ютуб не торопится заливать его :(
Когда будет готово, опубликую.
RPG V:Не участвую.
VanyaR1
Avatar пользователя

Опубликовано 26.11.2016 10:09 (2 месяца назад)    #
RPG V:Не участвую.
Mefistofel
Инженер‑космогоник
Avatar пользователя

Опубликовано 26.11.2016 11:15 (2 месяца назад)    #
Ну единственное существенное отличие, которое Я знаю (по поводу отличия в редакторе и в объектах) - это организация стыков.
Для видюхи одна точка - это точка с набором текстурных координат, нормалей, тангент и т.д.
Поэтому в обычном кубике получается описание не 8 точек, а 6*4 точек (так как не сходятся ни нормали, ни текстуры). Такие же объекты используются для игр и движков.
При этом в редакторе (в Максе по крайней мере), структура данных такова, что это все таки одна точка, просто есть в описании полиговнов не только номера координат, но и номера текстурных координат (причем может быть естественно несколько), отдельно нормали и т.д,

А по поводу освещения - сделай шарик, на нем лучше видно. С виду норм.
RPG V:Не участвую.
VanyaR1
Avatar пользователя

Опубликовано 26.11.2016 11:47 (2 месяца назад)    #
Сфера и с цветом

редакция от VanyaR1, 26.11.2016 11:49

RPG V:Не участвую.
Zer0
Avatar пользователя

Опубликовано 26.11.2016 17:23 (2 месяца назад)    #
VanyaR1 написал:
А вот мне стало интересно. Есть 3 способа создать mip-карты, и в один из них создается средствами видеокарты. Эта функция входит в стандартную функциональность видеокарт или может отсутствовать? По сути это очень важная оптимизация. Забавный пример: для объекта в 3 пикселя натянуть 1024х1024 текстуру:)

Я не знаю видях которые не могут в mipmap, в любом случае DirectX/OpenGL смогут это сами сделать.
Если ты все софтварно делаешь, то никто не мешает даунсемплить как тебе удобно.
RPG V:Не участвую.
Mefistofel
Инженер‑космогоник
Avatar пользователя

Опубликовано 27.11.2016 00:27 (2 месяца назад)    #
судя по дырдачкам, треугольники рисуются с какой то погрешностью.
RPG V:Не участвую.
VanyaR1
Avatar пользователя

Опубликовано 27.11.2016 16:02 (2 месяца назад)    #
Mefistofel
судя по дырдачкам, треугольники рисуются с какой то погрешностью.

С этим, просто, беда какая-то. Все дело с числами с плавающей точной, периодически появляются +-Infinity или NaN, вот и точки на краях пропадают, если у треуголника x1==x2 или y1==y2 типа этого, не понимаю как OpenGL/DirectX с этим справляются?! Может я в алгоритме где-то допустил ошибку.

Zer0
Я не знаю видях которые не могут в mipmap, в любом случае DirectX/OpenGL смогут это сами сделать.
Если ты все софтварно делаешь, то никто не мешает даунсемплить как тебе удобно.

Софтварный делаю потому что хочу понять как работает 3D внутри, когда вызываю функцию в opengl например, особой точности или клон графической API я не стремлюсь делать, а про видеокарту спросил потому, ведь памяти они требуют много со всеми подобными оптимизациями.
RPG V:Не участвую.
VanyaR1
Avatar пользователя

Опубликовано 27.11.2016 16:26 (2 месяца назад)    #
Катаем шарики, пробуем физику:
RPG V:Не участвую.
Mefistofel
Инженер‑космогоник
Avatar пользователя

Опубликовано 27.11.2016 18:41 (2 месяца назад)    #
Если честно, не разбирался глубоко в вопросе, но вроде как люди придумали очень годные и экономичные методы быстрого рисования треугольников. Традиционной проблемой являются так же дырки между полигонами или наоборот - когда полигоны друг на друга налазиют.
Вот есть занятный цикл статей, там про растеризацию треугольников в самом начале.
https://habrahabr.ru/post/248153/
RPG V:Не участвую.
Zer0
Avatar пользователя

Опубликовано 27.11.2016 20:51 (2 месяца назад)    #
VanyaR1 написал:
С этим, просто, беда какая-то. Все дело с числами с плавающей точной, периодически появляются +-Infinity или NaN, вот и точки на краях пропадают, если у треуголника x1==x2 или y1==y2 типа этого, не понимаю как OpenGL/DirectX с этим справляются?! Может я в алгоритме где-то допустил ошибку.

Есть подозрения что это либо баги связанные с z-buffer, или с тем рисуешь ли ты в вершинах треугольника точки или нет (вопрос к алгоритму растеризации).

Обычный растеризатор использует алгоритм брезинхема с чистыми интами, потому в вершинах рисуются все точки, и часто треугольники перекрываются именно в вершинах. Я точно помню что в 3д для линий и треугольников были опции по рисованию граничных пикселей на стыках, чтоб правильно обрабатывался альфа-блендинг и не было перекрытий.

Возможно проблемы возникают при округлении, и у треугольников разные координаты вершин. Если ты будешь пилить мультисемплинг на краях или антиалязинг, там все сильно сложнее.

Zer0
Софтварный делаю потому что хочу понять как работает 3D внутри, когда вызываю функцию в opengl например, особой точности или клон графической API я не стремлюсь делать, а про видеокарту спросил потому, ведь памяти они требуют много со всеми подобными оптимизациями. [/quote]
Не так много, каждый следующий уровень детализации в 4 раза меньше по объему чем предыдущий. Зато а) уменьшается необходимая пропускная способность памяти б) улучшается качество картинки
RPG V:Не участвую.
Zer0
Avatar пользователя

Опубликовано 27.11.2016 20:54 (2 месяца назад)    #
https://fgiesen.wordpress.com/2013/02/08/triangle-rasterization-in-practice/
Fill rules и дальше могут быть полезны.
RPG V:Не участвую.
Страница 1 из 3 1 2 3 >
Перейти на форум:
Конкурсы
Открытые конкурсы:
RPG V

Старт: 2 января 2017г.
Финиш: 22 января 2017г.

Участники: 12
Недавние конкурсы:
 138 - Free Fall
 137 - Race III
 136 - Crowd Control
 135 - Roguelike II
 134 - Automate it
 Все конкурсы
Случайная игра
Мини-чат
Вам необходимо залогиниться.

Waldenmr
5 часов назад
[url=https://goo.gl/tpcC3v]Бло
г Криптоманьяка[/url]

ZblCoder
10 часов назад
У оленя закончилось топливо, пришлось вернуть старый логотип.

KEFIR
день назад
Необратимые изменения в психике гарантированы!

ZblCoder
2 дня назад
перед едой, во время еды и после еды.

Mefistofel
2 дня назад
3 раза в день ВМЕСТО еды.

SkyNET
3 дня назад
Cекрет прост нужно играть в игры KEFIRа! это и называется кефирная диета

VanyaR1
3 дня назад
KEFIR знает как продвигать свою диету. Ботов подключил. KEFIR, ну и какой секрет твоей диеты?

SkyNET
3 дня назад
xD

Anastasiaka
3 дня назад
[url=https://tut_bil.link]Кефи
рная диета[/url]

Mefistofel
4 дня назад
Мимими, продвижение подъехало. Почему Я не нинтендо - выпустил новую игру со словом "mario" в названии, звякнул знакомым в эппл/гугл - вот тебе и продвижение, без странных методов.

Архив чата

8,903,553 уникальных посетителей

Создано на базе русской версии PHP-Fusion copyright © 2003-2006 by Nick Jones.
Released as free software under the terms of the GNU/GPL license.