|
Работа над Движком
| |
DragonFlyPilot | Дата: Понедельник, 03.01.2011, 18:19 | Сообщение # 1 |
Masterful
Сообщений: 24
Награды: 0
Репутация: 6
Статус: Offline
| Итак, работа кипит. Написание собственного двига без использования DirectX, OpenGL и др. довольно сложное и интересное занятие. Главное, что есть полный доступ ко всему, что творишь. Можно сделать графические эффекты любой сложности. Правда, все нужно оптимизировать по максимуму, ведь GPU не загружена. Уже сделано: 1) Собственно, есть полноценное ядро, использующее массивы данных и текстуры. Уже можно создавать карты=) Правда, нужно писать редактор. 2) Из эффектов, есть работающий Alpha-Blending (оптимизированный!) или прозрачность. Я убрал все деления и серьезно ускорил расчет. Результат:
|
|
| |
DragonFlyPilot | Дата: Понедельник, 03.01.2011, 18:30 | Сообщение # 2 |
Masterful
Сообщений: 24
Награды: 0
Репутация: 6
Статус: Offline
| И High-tex рисунок (на прошлом была текстура 100x100: (здесь текстура 1000x1000) Текстуры расчитываются по формулам (Прозрачность - с помощью синуса, цвета - близость к точкам) Возможна загрузки картинки (ядро есть, а функции - нет=) Добавлено (03.01.2011, 18:30) --------------------------------------------- Рано сказал=( Aplha - сложная штука.
|
|
| |
DragonFlyPilot | Дата: Понедельник, 03.01.2011, 18:36 | Сообщение # 3 |
Masterful
Сообщений: 24
Награды: 0
Репутация: 6
Статус: Offline
| Пример использования: Кто выстрелил из ракетницы?
|
|
| |
Felix | Дата: Понедельник, 03.01.2011, 18:49 | Сообщение # 4 |
Cold storm leader
Сообщений: 116
Награды: 2
Репутация: 12
Статус: Offline
| Ппц, круто! Скачать дашь когда комнату сделаешь?
|
|
| |
DragonFlyPilot | Дата: Понедельник, 03.01.2011, 21:54 | Сообщение # 5 |
Masterful
Сообщений: 24
Награды: 0
Репутация: 6
Статус: Offline
| Тестовая версия (нет оптимизации отрисовки и границ, поэтому оооочень медленно, но это можно ускорить=) Предупреждаю, что [ESC] - клавиша, отвечающая за рисование. Если хочешь именно выйти - жми ее. Не рисуется - жми ESC. Управление - стрелками, движение - мышкой. Добавлено (03.01.2011, 21:54) --------------------------------------------- Почему я не использую OpenGL: 1) Я не знаю OpenGL=) 2) Способ построения в моем двиге уже КАРДИНАЛЬНО отличается от любого другого. Пример: Камера тут не точка с направлением, а группа точек. Одна из них - центр обзора, еще 3 вектора - координаты плоскости, через которую ты смотришь!!! Да, да, их можно менять и уже реализовать что-то вроде зеркала или даже преломления=) Еще 1 вектор - нормаль вращения (охрененная штука), ведь на самом деле ты вращаешся вокруг вертикальной линии, а не горизонтально. Достаточно изменить ее (например модель упала) и ты уже не будешь вращаться по вертикали, поверь. Это те не КС, тут реал=) Еще есть 2 точки - вектора направления движения. Когда ты нажимаешь стрелочки, ты движешься не вперед-назад-влево-вправо, а вдоль этих векторов! И я могут изменить их направления=) 3) У меня НЕТ МАТРИЦ! НЕТ ВООБЩЕ! НИКАКИХ. Ни матриц вращения, ни матриц проэкции, ни матриц движения! Однако, я могу двигаться и вращаться=) Здесь нет даже FOV, ZOOM и вообще в расчетах точек не использовалось НИ ОДНОГО синуса, косинуса, тангенса. Точки, которыми ты задаешь видимую плоскость, можно исказить как хочешь! 4) В тестовой версии все нарисовано не треугольниками, а прямоугольниками=) Когда Felix написал "... когда комнату сделаешь?" я за 1 минуту изменил способ построения с треугольников, на *квадраты! Аналогично, я могу поменять его на круги или гиперболы=) Такого не может ни DirectX, ни OpenGL. Они рисуют только треугольники. 5) Возможна реализация не только плоскостей. Можно рисовать и поверхности, но это гораздо медленнее. *Квадраты - ведь если вы видели двиг, там прямоугольники. Как же так? Все просто. Область, через которую мы смотрим - тоже квадрат! А не прямоугольник, подобный экрану. Достаточно сделать область видимости, пропорциональной экрану, и картинка станет нормальной=) Пример:
Сообщение отредактировал DragonFlyPilot - Понедельник, 03.01.2011, 22:35 |
|
| |
DragonFlyPilot | Дата: Понедельник, 03.01.2011, 22:37 | Сообщение # 6 |
Masterful
Сообщений: 24
Награды: 0
Репутация: 6
Статус: Offline
| Вид со стороны (AlphaBlending в действии) Версия файла, с правильным отображением размеров.
|
|
| |
PsymoN | Дата: Вторник, 11.01.2011, 11:50 | Сообщение # 7 |
Exeperienced
Сообщений: 20
Награды: 1
Репутация: 3
Статус: Offline
| ох нифига себе... а как ты будешь лепить сложные обьекты? как например модели людей, техники..Добавлено (11.01.2011, 11:50) --------------------------------------------- ох нифига себе... а как ты будешь лепить сложные обьекты? как например модели людей, техники..
|
|
| |
Felix | Дата: Вторник, 11.01.2011, 17:03 | Сообщение # 8 |
Cold storm leader
Сообщений: 116
Награды: 2
Репутация: 12
Статус: Offline
| скeлeтaл мeш систeму ввeдёт в движок и будут и люди и н.ё.х...
|
|
| |
DragonFlyPilot | Дата: Суббота, 15.01.2011, 21:57 | Сообщение # 9 |
Masterful
Сообщений: 24
Награды: 0
Репутация: 6
Статус: Offline
| Простите, что долго не появлялся. Университет у меня, надо пособирать зачеты, ад кончиться 19 января, так что до этого срока я тут вряд-ли появлюсь. Quote (PsymoN) а как ты будешь лепить сложные обьекты? Уже можно создавать объекты любой сложности и количества полигонов. После того, как я закончу с универом: 1) Оптимизирую по максиму внутренний цикл, убрав все умножения (с делениями я тогда уже разобрался) 2) Проведу текстурную оптимизацию 3) Добавлю, наконец, границы рисования. Только после этого целесообразно разбираться с периферией ядра, а именно оболочка для редактора, конвертеры в Mesh-формат (100% будет собственный формат, также надо создавать формат карты) Quote (Felix) скeлeтaл мeш систeму ввeдёт в движок и будут и люди и н.ё.х... На последующих этапах можно будет все=) *А сейчас я не занимаюсь двигом, а рисую чертежи=) Потом будет эссе по культурологии, вообщем, работы много на всех фронтах=) Добавлено (15.01.2011, 19:21) --------------------------------------------- Сегодня весь день занимался оптимизацией. Пришел к выводу, что нужно переписать много кода=( Добавлено (15.01.2011, 21:57) --------------------------------------------- Свежая версия: Управление - только мышкой=) Двигая ей, перемещаетесь по аналогии со стрелочками. А, если зажать правую кнопку, то осуществите вращение. ВЫХОД на кнопку ECS. Программа НЕ использует полноэкранный режим! Это Pop-up окно, растянутое на весь экран. Двиг до конца не оптимизирован, но уже виден физический барьер в скорости работы процессора. Нужна супер-оптимизация внутренней части движка=( Кол-во FPS неприемлимое и слишком низкое, несмотря на примененные правила отсечения.
|
|
| |
DragonFlyPilot | Дата: Суббота, 15.01.2011, 22:26 | Сообщение # 10 |
Masterful
Сообщений: 24
Награды: 0
Репутация: 6
Статус: Offline
| Самое интересное, что правильное Alpha-смешивание производиться в порядке приближения к камере, а быстрая отрисовка - в порядке удаления от камеры. И что мне делать, пока не понятно. Недостаток смешивания можно увидеть в новой версии движка.
|
|
| |
DragonFlyPilot | Дата: Пятница, 21.01.2011, 13:12 | Сообщение # 11 |
Masterful
Сообщений: 24
Награды: 0
Репутация: 6
Статус: Offline
| Так, я тут прикинул, какая будет производительность, если понавешать всего 2-3 эффекта, а не over9000, как хочется, а также FPS, который выдает моя прога на мощном ноуте. Вообщем, буду тянуть 2 проекта: на DirectX и на своей отрисовке. Я сегодня увидел, что одна из моих брошенный версий на DirectX все-таки работает, затестите, пожалуйста!!! У кого с ней проблемы и какие (название ошибки и ее описалово) [F1] - на весь экран [F4] - выход [TAB] - респаунд [WASD] - ... [SPACE] - ... Играем за кубик=) Там еще бот есть, но он какой-то хренью занимается, прыгая и вращаясь на карте... Что-то еще есть, но я забыл, т.к. долго не работал над этим проектом. Добавлено (21.01.2011, 13:12) --------------------------------------------- К сожалению, от прозрачности придется отказаться. Она черезвычайно сильно тормозит и без того медленные процессы расчета. Сегодня буду вводить освещение=)
Сообщение отредактировал DragonFlyPilot - Пятница, 21.01.2011, 13:00 |
|
| |
DragonFlyPilot | Дата: Пятница, 21.01.2011, 18:58 | Сообщение # 12 |
Masterful
Сообщений: 24
Награды: 0
Репутация: 6
Статус: Offline
| Новая, более оптимизированная версия рукописного движка. FPS удовлетворительный, затестите! P.S. Это далеко не предел процессора. Отрисовку можно заметно увеличить, если расчеты вести в целочисленном формате. Хорошим вариантом ускорения также является многопоточность. При расчетах в целочисленном формате, качество картинки серьезно падает, но и скорость серьезно возрастет, ведь вместо работы с FPU, мы работаем с регистрами CPU. Как не странно, более новая версия весит еще меньше - 18кб, а DirectX версия - 32кб Добавлено (21.01.2011, 18:58) --------------------------------------------- Управление для движка: [ESC] - ВЫЙТИ, если в программе или продолжить, если не в другой программе [Mouse1] - вращаться [Mouse] - двигаться [Enter] - рисовать положение точек в пространстве (две 2D - проекции, поверх 3D) Лучше всего запустить с параметрами: + Использовать разрешение экрана 640x480 + Отключить композицию рабочего стола + Отключить визуальное оформление + Отключить масштабирование Примечание: Программа не использует видеокарту, ограничение на FPS = 100 Средняя загрузка процессора - 15% (на 4-ядерном)
Сообщение отредактировал DragonFlyPilot - Суббота, 22.01.2011, 01:52 |
|
| |
PsymoN | Дата: Пятница, 21.01.2011, 18:58 | Сообщение # 13 |
Exeperienced
Сообщений: 20
Награды: 1
Репутация: 3
Статус: Offline
| затестил) первый вирубил видяху в нокаут, Атишка. второй +100500!
|
|
| |
DragonFlyPilot | Дата: Суббота, 22.01.2011, 04:27 | Сообщение # 14 |
Masterful
Сообщений: 24
Награды: 0
Репутация: 6
Статус: Offline
| Итак, прямо сейчас я написал функцию для вывода текста! Ха-ха? Я написал ее вручную, без использования сторонних функций вывода и обработки битмапа из файла! Об ее возможностях можно прочесть в readme файле. База для вывода спрайтов на экран подготовлена! Уже можно и нужно рисовать пользовательское меню, иконки оружия и т.д. Felix, мне уже НУЖЕН пиздатый шрифт! И картинки для меню! Версия с текстовой индикацией FPS:
Сообщение отредактировал DragonFlyPilot - Воскресенье, 23.01.2011, 22:04 |
|
| |
DragonFlyPilot | Дата: Суббота, 22.01.2011, 04:28 | Сообщение # 15 |
Masterful
Сообщений: 24
Награды: 0
Репутация: 6
Статус: Offline
| Очень сладкий скриншот Надеюсь, не надо обьяснять, что я ввел в движок Но, сегодня ночью, я замахнулся на тени. Жду FPS, равный 2 или 3
|
|
| |
PsymoN | Дата: Воскресенье, 23.01.2011, 14:11 | Сообщение # 16 |
Exeperienced
Сообщений: 20
Награды: 1
Репутация: 3
Статус: Offline
| у меня загруз проца 30% когда я в кубе нахожусь, вышел, 10-15) фпс = в кубе 24-27, подальше от него = скачет в овер 200) ждем версию с тенями)
|
|
| |
DragonFlyPilot | Дата: Воскресенье, 23.01.2011, 18:41 | Сообщение # 17 |
Masterful
Сообщений: 24
Награды: 0
Репутация: 6
Статус: Offline
| Еще вчера должен был выложить версию с динамическим освещением. Но после того, как я написовал источник света, возникла совсем непонятная проблема с отображением треугольников. Сейчас ищу причину... Добавлено (23.01.2011, 17:40) --------------------------------------------- +Еще надо оптимизировать и скоро буду переходить на другой тип обработки проецирования Версия с тенями будет, но после того, как я решу все проблемы Добавлено (23.01.2011, 18:41) --------------------------------------------- Столько трудов было вложено... Но сейчас был придумал алгоритм, превосходящий данный в разы. Надо все стирать и писать заново. Зато будет возможен тайлинг и еще несколько приятных фишек=) И ошибки теперь не будет выдавать программа. И подсчет можно целочисленным сделать!
|
|
| |
DragonFlyPilot | Дата: Воскресенье, 23.01.2011, 19:07 | Сообщение # 18 |
Masterful
Сообщений: 24
Награды: 0
Репутация: 6
Статус: Offline
| Последняя версия двига в другой теме ( с динамическим освещением и без теней) Начинаю писать новый=)
Сообщение отредактировал DragonFlyPilot - Воскресенье, 23.01.2011, 22:05 |
|
| |
Felix | Дата: Понедельник, 24.01.2011, 15:05 | Сообщение # 19 |
Cold storm leader
Сообщений: 116
Награды: 2
Репутация: 12
Статус: Offline
| ты тaм eщe выложи дирeкт3д вeрсию. 2 ссыли- 1 нa вин 3д, другaя нa дирeкт3д.
|
|
| |
DragonFlyPilot | Дата: Пятница, 25.03.2011, 09:26 | Сообщение # 20 |
Masterful
Сообщений: 24
Награды: 0
Репутация: 6
Статус: Offline
| Вообщем, я наконец-то нашел норм мануал, который 4 месяца! просто пылился в папке с SDK версией Директа. Впроцем, пока я изучал другие, я прилично набрался различного опыта и уже готов к более серъезной работе. Ничго обещать пока не могу, но постараюсь продолжить работу над новым DirectX Engine=)
|
|
| |
| | |
| Copyright ColdStorm © 2010-2024 | | |
| | |
| |