forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Xors3D (http://forum.boolean.name/forumdisplay.php?f=126)
-   -   Пишем 3D движок - замену Xors3D (http://forum.boolean.name/showthread.php?t=18971)

moka 17.06.2014 14:14

Ответ: Пишем 3D движок - замену Xors3D
 
Mr_F_, вот знание разных GAPI теперь тебе дает возможность рассмотреть суть абстракций, и если вдруг будет необходимость поддержки более нового GAPI, то переход будет не на столь болезненный.

А теперь прикинь у тебя все написано одной кашей, от друг дружки завязано. Вот та же тема со стейтами, что все встанет как полагается для DX10? Нифига, будут те же костыли и все будет не меньше ломаться. По крайней мере у тебя "добавления" зависимостей, а в одной каше это будет перелопачивание зависимостей с неприятными последствиями.

Опыт естественно нужен при работе с разными GAPI, но писать один спаггети-код - это прямой путь к провалу.

Mr_F_ 17.06.2014 21:34

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

А теперь прикинь у тебя все написано одной кашей, от друг дружки завязано.
ну так я не предлагаю херачить как попало а потом портировать на другой гапи.
варианта 2:
- херачить быстро на одном гапи
- херачить с абстракциями под много гапи, зная каждый очень хорошо в отдельности

moka 17.06.2014 21:36

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от Mr_F_ (Сообщение 282965)
ну так я не предлагаю херачить как попало а потом портировать на другой гапи.
варианта 2:
- херачить быстро на одном гапи
- херачить с абстракциями под много гапи, зная каждый очень хорошо в отдельности

Так как первый - один из вариантов, но для опыта лучше двигаться ко второму, а опыта нету. Следственно стоит херачить быстро на одном гапи с мелкими абстракциями (для опыта), и затем их "поломать" и понять где напортачил при переходе на другой GAPI. По сути то через что ты прошел, тем самым будет отличный опыт.

Mr_F_ 17.06.2014 22:43

Ответ: Пишем 3D движок - замену Xors3D
 
Ну может быть, тут в принципе чувак для себя пилит, а вот у меня был определённый заказ со сроками, и я тогда мог сделать много чего быстрее, если бы не заморачивался :D

moka 18.06.2014 01:09

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от Mr_F_ (Сообщение 282975)
Ну может быть, тут в принципе чувак для себя пилит, а вот у меня был определённый заказ со сроками, и я тогда мог сделать много чего быстрее, если бы не заморачивался :D

Но опыт то нужно тоже получать, а не тупо пилить - абы здать. Следственно ты все правильно имхо сделал.
Кодинг и вся жизнь разработчиков никогда не бывает гладкой, никогда. И те кто умеют "страдать" как полагается :) те и опыта набираются збсь.

bugway 29.06.2014 12:17

Ответ: Пишем 3D движок - замену Xors3D
 
Всем привет!

У кого-нибудь есть нормальная инфа, как делать вывод текста с нуля, не используя d3dx и подобные библиотеки?

Дело в том, что удалось оптимизировать код таким образом, что на пустой сцене FPS переваливает за 10000 (!!!). Вывод одной строчки через d3dx убивает фпс до 6500. А вывод еще нескольких строк - до 2000 фпс. А если с GUI - то фпс не более 500. Не хочется изобретать велосипед, поэтому может кто подскажет, чем кто пользовался и как выводил текст и GUI?

Пока варианта 2: либо d3dx/dxut, либо каждую букву стрипом с текстурой буквы. Может еще какие варианты есть? Еще не могу отделаться от мысли рисовать текст напрямую в backbuffer. Но в интернете что-то не нашел такого варианта...

Mr_F_ 29.06.2014 12:27

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Вывод одной строчки через d3dx убивает фпс до 6500. А вывод еще нескольких строк - до 2000 фпс. А если с GUI - то фпс не более 500
такие измерения ни о чём не говорят, лучше кол-во миллисекунд замерь и подумай сколько у тебя их занимает пустая сцена в 10к фпс. на фоне скорости реальной игры, этот д3дх текст заметен вообще не будет.

bugway 29.06.2014 13:00

Ответ: Пишем 3D движок - замену Xors3D
 
1 строка - около 0.2 мс. Может я и правда слишком зациклился на оптимизациях...

Но вот как реализовать мягко скролируемый текст... Тут уже не просто вывод текста - тут надо рисовать часть первой видимой строки, n-строк посередине, часть последней видимой строки. Это дополнительные проверки и потеря ФПС... Или рендерить в текстуру и натягивать на страйп?

Mr_F_ 29.06.2014 13:30

Ответ: Пишем 3D движок - замену Xors3D
 
ну вообще по-мойму сегодня уже все игры, неигры и кто угодно рендерит UI квадами с текстурой. это БЫСТРО. в том числе д3дх делает то же самое. зная это, достаточно очень тривиально изменить VS чтобы плавно сдвигать все вертексы. можешь сделать это с д3дхом (если там всё не слишком через жопу), можешь сам, но в последнем случае учти, что тебе придётся много времени потратить на чёртов текст, чтобы там кернинг был нормальный, тексель в пиксель попадал и т. д., зависит дальше от амбиций (размеры/разноцветность/болд-италик/теги...)
---
брр погоди, разве д3дх не позволяет рисовать текст начиная с любого пикселя экрана? насколько я помню, позволяет. ну и какие проблемы со скроллингом?
---
а, ты что ли про то чтобы скроллить не влезающий в экран большой текст? и про проверки на видимые строки? пфф, это вообще ничего не стоит, чтобы тут про фпс рассуждать

Samodelkin 29.06.2014 15:01

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от Mr_F_ (Сообщение 283613)
ну вообще по-мойму сегодня уже все игры, неигры и кто угодно рендерит UI квадами с текстурой. это БЫСТРО.

Именно так я делаю у себя.

Цитата:

Сообщение от Mr_F_ (Сообщение 283613)
в том числе д3дх делает то же самое.

Вот я не уверен, я столкнулся с той же самой проблемой - текст в д3дх реально много жрёт. Была сцена со средним фпс 60, вывод текста на 2/3 площади экрана просадил до 5 фпс. Даже если сцену потом убрать - фпс не поднимется. Однако я не уверен что я правильно рисовал. Я каждый раз вызывал функцию прорисовки текста, а может быть, если текст не меняется, есть способ нарисовать его один раз куда-нибудь в текстуру и затем выводить эту саму текстуру.

Цитата:

Сообщение от Mr_F_ (Сообщение 283613)
брр погоди, разве д3дх не позволяет рисовать текст начиная с любого пикселя экрана? насколько я помню, позволяет.

Да 100% я так делал.

Mr_F_ 29.06.2014 16:15

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Была сцена со средним фпс 60, вывод текста на 2/3 площади экрана просадил до 5 фпс.
ну не знаю, я его юзал, и он почти не влиял вообще. выводил несколько дебаг строчек типа фпс и подобного.

Цитата:

есть способ нарисовать его один раз куда-нибудь в текстуру и затем выводить эту саму текстуру.
экран текста выводить в фуллрес текстуру будет медленее чем рисовать квады с буковками склееные в 1 дип.

Samodelkin 29.06.2014 17:11

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Сообщение от Mr_F_ (Сообщение 283620)
ну не знаю, я его юзал, и он почти не влиял вообще. выводил несколько дебаг строчек типа фпс и подобного.


экран текста выводить в фуллрес текстуру будет медленее чем рисовать квады с буковками склееные в 1 дип.

Зависит от того какую площадь экрана покрывает текст, попробуй вывести на весь экран.

Ну если свой текст писать то через квады, но д3дх выглядит красивей, а если его тоже выводить по буквам через квады будет также некрасиво как свой текст через квады.
Вообще можно минимизировать количество текста в ХАДе, а где-нибудь в окне меню игра то на паузе будет - можно и с более низким фпс повыводить.

Mr_F_ 29.06.2014 17:20

Ответ: Пишем 3D движок - замену Xors3D
 
Цитата:

Ну если свой текст писать то через квады, но д3дх выглядит красивей, а если его тоже выводить по буквам через квады будет также некрасиво как свой текст через квады.
д3дх работает через квады
делать через квады не делает текст "некрасивым"
некрасивым его делают кривые руки

Samodelkin 29.06.2014 19:32

Ответ: Пишем 3D движок - замену Xors3D
 
Ну я не художник чтоб шрифты рисовать, подходящего размера в инете не нашел, а нужно было чтоб тексель в пиксель попадал и нужного размера, пришлось самому шрифты рисовать.

moka 29.06.2014 19:36

Ответ: Пишем 3D движок - замену Xors3D
 
Зачем рисовать, есть же куча Bitmap Fonts генераторов. Например: http://www.gamedev.ru/projects/forum/?id=152527


Часовой пояс GMT +4, время: 21:19.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot