ФлеймФорумПроЭкты

Нуб вкатился в 3д.

Страницы: 1 2 3160 161 Следующая »
#0
15:44, 8 сен 2016

Кратко предыстория. Последние лет пять делал всякие недоделки: пиксельарт, ноуграфон без идей. И вот надоело, захотелось новых горизонтов. А чего, а можно ведь и три-де.
В 3д я ковырялся очень давно, но с тех пор все позабыл. Так что вхожу с нуля. Не понимаю тут почти ничего. Пытался въехать что такое матрицы, не смог. Так что тема в целом для самообразования. Где вы поделитесь со мною крупицами инфы о всяком разном.

Здесь только софтрендер на целых числах, без чужих либ. Рендер уже считайте что готов. Может в кубы с несложной текстурой.
Пожелайте мне удачи. :)

Ссылки из темы.

Самое актуальное: http://store.steampowered.com/app/581730/Autumn_Night_3D_Shooter/

+++

Тест быстродействия со страницы 20: https://drive.google.com/file/d/0B3BRCLyorkD2akFQM212bzZjZk0/view?usp=sharing
Огромный заяц со страницы 18: https://drive.google.com/file/d/0B3BRCLyorkD2NnhaVnNpSGZVM0E/view?usp=sharing
Первая игра на новом растеризаторе, страница 08: https://drive.google.com/file/d/0B3BRCLyorkD2ekFJWlBocFhiUEU/view?usp=sharing
Вторая игра на новом растеризаторе, Стим: http://store.steampowered.com/app/581730/Autumn_Night_3D_Shooter/

+++
Скрины и видео.

09.10.2016 festival CPU GPU | Нуб вкатился в 3д.

Изображение

Изображение

Изображение

Изображение

Изображение

Изображение

Изображение

dfggfd | Нуб вкатился в 3д.

3d-basil test results | Нуб вкатился в 3д.

Изображение

+++

+ Старые_видео
#1
18:15, 8 сен 2016

122
> какие возможности вообще требуются для софтрендера
лучше использовать опенгл, его хватит не только на кубики.
> Как делают управление в таких играх?
Заведи char массив состояний клавиш, которые ты будет использовать. Затем с помощью

GetAsyncKeyState(...)

устанавливай в этот массив данные. Нужно сделать так:

char keys[7];
...
if (keys[VK_W]==0) // клавиша W отжата (0--0)
if (keys[VK_W]==1) // клавиша W нажата (1--1)
if (keys[VK_W]==2) // клавиша W отжимается (1->0)
if (keys[VK_W]==3) // клавиша W нажимается (0->1)
#2
18:30, 8 сен 2016

мышью управлять взглядом, w\s\a\d\shift\ctrl - стрейф и разгон\торможение, q\e - делать бочку ака крен.
Софтрендеру еще модельки кроме кубов (из вокселей? треугольников?), стрельбу отрезками и красочные взрывы.

#3
18:37, 8 сен 2016

programina
> Заведи char массив состояний клавиш, которые ты будет использовать.
А я то подумывал на мышке сделать.
Это же гонки вроде как. Блин, я вот не играл ни во что и не знаю. По логике мышкой же удобнее "рулить" в гонках?
Как это делают обычно? Если не геймпад.

Пока пробую на мышке прикрутить.
Сейчас на мышке я при изменении ее позиции снимаю разницу и после мышку центрирую. Командой винапи SetCursorPos(). И тут первые две засады.
1. Центрирует она относительно экрана а не игрового окна. Как мне получить позицию моего окна?
2. При игре на планшете эта схема не работает вообще, так как при елозении пальцем по экрану, этот палец командой не отцентрируешь. Путано пишу, но это так. Поэтому для управления планшета надо что, совсем иначе делать?

> лучше использовать опенгл, его хватит не только на кубики.
Спасибо, это я знаю. У меня наверное травма детства софтварными играми: Думом, Квейком, Вольфом. :)

#4
18:40, 8 сен 2016

programina
> лучше использовать опенгл, его хватит не только на кубики.
  Ты что разве не знаешь, что OpenGL тормозит и требует 16 ядер CPU для своей работы? К тому же если ты не используешь свой софтварный рендер, то ты не можешь называться инди-разработчиком.

122
> 2. При игре на планшете эта схема не работает вообще, так как при елозении
> пальцем по экрану, этот палец командой не отцентрируешь.
  Сначала определись что ты хочешь и способ решения станет ясен сам собой. Пока ничего не понятно. В гонках часто делают управление наклоном. Но лично я считаю это подход для даунов (точно так же как автоматический тормоз и контроль устойчивости, к тому же я вообще могу играть полулёжа на боку) и когда можно переключаю управление нажатиями. Но так как 95% пользователей сами знаешь кто, то для них управление наклоном это то, что нужно.

#5
18:40, 8 сен 2016

programina
>GetAsyncKeyState(...)
WM_KEYDOWN / WM_KEYUP - не, не слышали.

>устанавливай в этот массив данные. Нужно сделать так:
Что за бред наркомана?

#6
18:41, 8 сен 2016

kipar
> Софтрендеру еще модельки кроме кубов (из вокселей? треугольников?), стрельбу
> отрезками и красочные взрывы.
Вокселей и треугольников нет. Есть только квады, четырехугольные полигоны. Особенность реализации текстурирования, спохватился слишком поздно. Квад со сдвоенной вершиной не прокатит.
Про модельки я думал, для какого формата бы написать чтение. Пока держу на примете .obj. Как самый простой.

#7
18:54, 8 сен 2016

Ну модельки из четырехугольников тоже вариант. И да, obj по-моему самый простой. Разве что там скелетной анимации нет, но для гонок она не нужна.

122
> Поэтому для управления планшета надо что, совсем иначе делать?
Да, наверное только виртуальные кнопки (в частном случае - просто нажатие на левую\правую половину) или такой виртуальный джойстик, который смещаешь пальцем.
Zefick
> и когда можно переключаю управление нажатиями.
+1

#8
20:29, 8 сен 2016

Zefick
> Сначала определись что ты хочешь и способ решения станет ясен сам собой.
Пока не знаю чего хочу. Просто удобного управления в леталке, наверное.

kipar
> Да, наверное только виртуальные кнопки (в частном случае - просто нажатие на
> левую\правую половину) или такой виртуальный джойстик, который смещаешь
> пальцем.
Значит универсального не сделать. Жаль. Ну тогда для ПК буду управление писать для начала.

Значит, кубы у меня уже есть, и камера летает сквозь. Теперь надо решить вопрос с физикой. Не то чтобы с физикой даже, просто а) детектить столкновения и б) что-то при этом делать с игроком который и камера.

Скрин.
hvjgvjhv | Нуб вкатился в 3д.

#9
20:33, 8 сен 2016

kipar
> Ну модельки из четырехугольников тоже вариант.
Думаешь? А редакторы умеют их автоматически делать? Я бегло посмотрел на Блендер, не смог найти чтобы он четырехугольники делал. Тот же шар он добавляет, и в торцах шара треугольники.

#10
21:11, 8 сен 2016

122
ну я погуглил, нашел http://blender.stackexchange.com/questions/5538/how-do-i-convert-… o-a-quads-one и решил что все ок. но сам не пробовал.

#11
8:48, 9 сен 2016

122
> Теперь надо решить вопрос с физикой. Не то чтобы с физикой даже, просто а)
> детектить столкновения и б) что-то при этом делать с игроком который и камера.
Если кубики всегда такие, как на скрине, то AABB vs Point/Sphere. Делается очень просто.
Вообще самый базовый физдвиг можешь почитать здесь. Если тебе не нужны реакции вращения, то выпиливается очень легко. Если вообще не нужно вращение учитывать, то выпиливаешь все связанное с матрицами поворотов. Если лень разбираться, то просто удали класс, дальше тебе компилятор подскажет. В любом случае придется портировать на целочисленное. Алгоритмы там очень простые и наглядные, но при этом работает довольно шустро. Сферу впилить проще простого.

#12
16:00, 9 сен 2016

Для софтрендера важно определиться со структурой уровня для начала.
Порталы у тебя? Или бсп-нарезка? Или какой ещё способ не учитывать невидимые фрагменты уровня?

#13
16:05, 9 сен 2016

TarasB

Ты в своем софтрендере многопоточность делал?
Задача ведь идеальна для распараллеливания.
Тут вообще можно ведь сделать сортировку от ближних к дальним и всякие фишки вpoде оклюженов в процессе рисования, проверятъ блоками.

#14
16:18, 9 сен 2016

dave
Нет, нахера на селероне это надо? Да и геморно это в ++03 делать.

Страницы: 1 2 3160 161 Следующая »
ФлеймФорумПроЭкты

Тема в архиве.

Тема закрыта.