|
15.12.2013, 18:00
|
#136
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: [TrueHorror] - разработка
Много воды утекло с прошлой версии.
В основном технические изменения.
А именно:
1) Переделал рендерер - появились соответствующие компоненты типа IVertexBuffer, ITexture и т.п. Таким образом рендерер под OpenGL написать будет просто.
2) Ускорил загрузку моделек - в т.ч. уровня. Ранее уровень размером в 1,2 мб грузился за 10 сек, сейчас за 1,2
3) Добавил врагов - пока только ближний бой.
4) Добавил меню - в нем минималистические настройки( настройки графики пока не работают )
5) В скрипты добавил работу с GUI.
Мне нужен код который считает тангенты и бинормали. Тогда смогу сделать бамп или параллакс. А пока просто диффузный свет.
Еще кидайте мне лог( лежит в data/logs ) и фпс.
Скачать
__________________
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо mr.DIMAS за это полезное сообщение:
|
|
16.12.2013, 03:44
|
#137
|
Быдлокодер
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений (для 5,349 пользователей)
|
Ответ: [TrueHorror] - разработка
Запустил. Увидел туннель, понравилось, ассоциации с Пенумброй. Решил сменить графику в меню - вылет.
Запустил по новой, нажал играть. Оказался на какой-то дороге в лесу, ночью. Первое что заметил нежелательное присутствие курсора =_="
Затем странный фонарь, когда проводишь внизу него курсором, издаётся щелчок как в меню по кнопкам. На том месте как раз интерфейс:
Огляделся по сторонам, везде было очень темно, ничего не видно. По правую руку, дорого вела в пещеру, в скале, перед которой, топтались двое подозрительных типов. Пошёл к ним. Один из них быстрым шагом двинулся мне на встречу. Как будто только и ждал когда пойду в их сторону, в его левой руке был нож.
Стало ясно чем это кончится. Особо не раздумывая я рванул вперёд, к пещере, надеясь спрятаться там. Обогнул первого человека, он махнул на меня ножом, но это было уже неважно. Пробежал мимо второго, забежал внутрь и обернулся что бы посмотреть. Один из мужчин топтался перед входом и по каким-то причинам не мог войти...
Любопытство вело меня дальше, в глубь скалы по туннелю. Я пошёл и встретил настоящий страх - перетянутые текстуры:
Перетянутые текстуры заканчивались непроглядной чернотой, я по инерции вбежал в неё, тьма окутала меня со всех сторон. Я замотал головой по сторонам, в надежде увидеть свет. Наконец я увидел три белых точки быстро уходящих вдаль:
"Вылетел с уровня" - подумал я и выключил игру.
FPS ~75
Log.zip
Последний раз редактировалось Arton, 16.12.2013 в 05:14.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Arton за это полезное сообщение:
|
|
16.12.2013, 12:21
|
#138
|
Мастер
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений (для 631 пользователей)
|
Ответ: [TrueHorror] - разработка
Мне нужен код который считает тангенты и бинормали.
|
D3DXComputeTangentFrameEx - считает тангенты и если нужно то бинормали и нормали.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
16.12.2013, 12:58
|
#139
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: [TrueHorror] - разработка
Мне нужен код который считает тангенты и бинормали
|
http://www.terathon.com/code/tangent.html
этот никогда не подводил
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
16.12.2013, 21:30
|
#140
|
Мастер
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений (для 631 пользователей)
|
Ответ: [TrueHorror] - разработка
Затестил - нормально. Меню выглядит многообещающе. Игра короткая, там действительно при входе в тоннель проваливаешься вниз и всё. У меня враги смогли в тоннель забежать. Да на фонаре тоже звук как будто по кнопкам меню проводишь.
Как всегда тестил на медленном железе: в целом довольно шустро работает, но из-за того что скорость игры завязана на fps играть не удобно. С включённой синхронизацией постоянно скачки - то 60, то 30, то 20, с выключенной чуть удобней, но теперь нету верхнего предела и при входе в тоннель например при 200 fps все слишком быстро происходит. Так что fps 20-200 - вот такой разброс.
Лог на другой машине, но в нём все нормально - время загрузки scene.cxm 453ms, arrival.cxm 1635ms
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
18.12.2013, 23:30
|
#141
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: [TrueHorror] - разработка
Наконец-то разобрался с расчетом нормалей. Ранее нормаль вычислялась только для грани, а теперь для каждой вершины - спасибо Борескову за код . Теперь можно тангенты и бинормали считать.
Скрины - до и после:
__________________
|
(Offline)
|
|
Эти 5 пользователя(ей) сказали Спасибо mr.DIMAS за это полезное сообщение:
|
|
22.12.2013, 02:25
|
#142
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: [TrueHorror] - разработка
Бамп пока не добавил. Сейчас работаю над модельками и картой, попутно исправляя баги в движке.
На скринах можно заметить z fighting. Сразу вопрос как в ДХ 9 его убрать?
Скрины:
__________________
|
(Offline)
|
|
Эти 4 пользователя(ей) сказали Спасибо mr.DIMAS за это полезное сообщение:
|
|
22.12.2013, 11:30
|
#143
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: [TrueHorror] - разработка
На скринах можно заметить z fighting
|
на скринах вижу только зад негра. в каком месте зфайтинг?
|
(Offline)
|
|
22.12.2013, 18:28
|
#144
|
Мастер
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений (для 631 пользователей)
|
Ответ: [TrueHorror] - разработка
Z файтинг убирается увеличением буфера глубины (или его точностью).
В D3DPRESENT_PARAMETERS ставишь AutoDepthStencilFormat в D3DFMT_D32 или D3DFMT_D24S8 или D3DFMT_D32F_LOCKABLE в зависимости от предпочтений. Обычно можно обойтись и 24 битным.
Mr_F_ кидал полезную презентацию где говорилось о нелинейном буфере глубины, для больших расстояний, где чем ближе и детальней объект тем точнее буфер глубины.
В любом случае во время моделирования старайся делать адекватные расстояния между параллельными плоскостями.
Ни на скринах с нормалями ни на скринах зфайтинга я ничего не могу понять - я вижу только ТЕМНОТУ!
|
(Offline)
|
|
01.01.2014, 12:05
|
#145
|
Бывалый
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений (для 866 пользователей)
|
Ответ: [TrueHorror] - разработка
fps 30-60
я смог залезть на фонарь и дальше гулять по горам ,далее вылетел за карту вот и все .
кстати , дебаг лога нет !
-- keep your fucking hands away from this code
-- your brain is too small for this
-- ну ты понял
порадовало
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо tirarex за это полезное сообщение:
|
|
08.01.2014, 01:40
|
#146
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: [TrueHorror] - разработка
К чему может привести подобный подход( я про return reinterpret_cast< int >( font );?
int CreateFont( int size, const char * name, int italic, int underlined )
{
ID3DXFont * font;
D3DXCreateFontA( g_device, -1, size, FW_BOLD, 0, italic, RUSSIAN_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, name, &font );
return reinterpret_cast< int >( font );
}
__________________
|
(Offline)
|
|
08.01.2014, 02:52
|
#147
|
Мастер
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений (для 631 пользователей)
|
Ответ: [TrueHorror] - разработка
Все зависит от тебя - если накосячишь то компилятор тебе не поможет. А так само значение переменной здесь меняться не будет. Но такая штука больше смахивает на костыль и это означает что у тебя проблемы с архитектурой движка.
Кстати эти шрифты (d3dxfont) ужасно медленные, если ими заполнить хотябы половину экрана то fps у меня на i7 и hd5870 падает ниже 10. Настройки качества шрифтов ничего особого не дают. Незнаю есть ли другие решения, я особо не искал, но у себя я в конце концов сделал через текстуры. Так что если ограничишься выводом fps и еще пару-тройку параметров то всё ок, а вот если будешь выводить страницы текста то лучше найти другое решение.
|
(Offline)
|
|
08.01.2014, 16:07
|
#148
|
Дэвелопер
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений (для 1,540 пользователей)
|
Ответ: [TrueHorror] - разработка
Я решил обособить движок в отдельную библиотеку. Классовый интерфейс мне не понравился - там куча проблем с ромбовидным наследованием и прочая муть. Поэтому к большинству объектов вне движка теперь можно обратиться с помощью хендлов( в данном случае int ) и функций работающих с ними. Вот и вся история.
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
08.01.2014, 17:06
|
#149
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: [TrueHorror] - разработка
хендлы сами по себе тоже необязательно заморачивать, это могут быть просто номера объектов в массивах)
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
08.01.2014, 21:37
|
#150
|
Мастер
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений (для 631 пользователей)
|
Ответ: [TrueHorror] - разработка
Более того их необязательно получать сразу. Опять же в качестве примера как я сделал у себя: для большинства объектов достаточно стандартной обработки, которая уже прописана жёстко в коде, например того класса контейнера который содежит эти объекты, а если всё таки потребуется особая работа с объектом то можно получить его локальный хендл/номер_в_массиве, таким образом избавляемся от большой кучи всяких глобальных указателей/хендлов, которые надо где-то хранить и кудато передавать. Кстати в том же d3d9 совсем не обязательно хранить указатели у себя в коде - их всегда можно получить локально через тот объект с которым работаешь. Например если в качестве аргумента в функцию дается IDirect3DTexture9 ты можешь внутри функции получить tex->GetDevice().
ЗЫ: вообще имхо чем большое хардкода (без потери функциональности) - тем лучше, проще и надежнее движок. Все манипуляции с движком лучше делать через скрипты/тулзы и прочие внешние инструменты.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:28.
|