![]() |
Ответ: Пишем 3D движок - замену Xors3D
Всем привет!
У кого-нибудь есть нормальная инфа, как делать вывод текста с нуля, не используя d3dx и подобные библиотеки? Дело в том, что удалось оптимизировать код таким образом, что на пустой сцене FPS переваливает за 10000 (!!!). Вывод одной строчки через d3dx убивает фпс до 6500. А вывод еще нескольких строк - до 2000 фпс. А если с GUI - то фпс не более 500. Не хочется изобретать велосипед, поэтому может кто подскажет, чем кто пользовался и как выводил текст и GUI? Пока варианта 2: либо d3dx/dxut, либо каждую букву стрипом с текстурой буквы. Может еще какие варианты есть? Еще не могу отделаться от мысли рисовать текст напрямую в backbuffer. Но в интернете что-то не нашел такого варианта... |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
1 строка - около 0.2 мс. Может я и правда слишком зациклился на оптимизациях...
Но вот как реализовать мягко скролируемый текст... Тут уже не просто вывод текста - тут надо рисовать часть первой видимой строки, n-строк посередине, часть последней видимой строки. Это дополнительные проверки и потеря ФПС... Или рендерить в текстуру и натягивать на страйп? |
Ответ: Пишем 3D движок - замену Xors3D
ну вообще по-мойму сегодня уже все игры, неигры и кто угодно рендерит UI квадами с текстурой. это БЫСТРО. в том числе д3дх делает то же самое. зная это, достаточно очень тривиально изменить VS чтобы плавно сдвигать все вертексы. можешь сделать это с д3дхом (если там всё не слишком через жопу), можешь сам, но в последнем случае учти, что тебе придётся много времени потратить на чёртов текст, чтобы там кернинг был нормальный, тексель в пиксель попадал и т. д., зависит дальше от амбиций (размеры/разноцветность/болд-италик/теги...)
--- брр погоди, разве д3дх не позволяет рисовать текст начиная с любого пикселя экрана? насколько я помню, позволяет. ну и какие проблемы со скроллингом? --- а, ты что ли про то чтобы скроллить не влезающий в экран большой текст? и про проверки на видимые строки? пфф, это вообще ничего не стоит, чтобы тут про фпс рассуждать |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
Цитата:
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
Ну если свой текст писать то через квады, но д3дх выглядит красивей, а если его тоже выводить по буквам через квады будет также некрасиво как свой текст через квады. Вообще можно минимизировать количество текста в ХАДе, а где-нибудь в окне меню игра то на паузе будет - можно и с более низким фпс повыводить. |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
делать через квады не делает текст "некрасивым" некрасивым его делают кривые руки |
Ответ: Пишем 3D движок - замену Xors3D
Ну я не художник чтоб шрифты рисовать, подходящего размера в инете не нашел, а нужно было чтоб тексель в пиксель попадал и нужного размера, пришлось самому шрифты рисовать.
|
Ответ: Пишем 3D движок - замену Xors3D
Зачем рисовать, есть же куча Bitmap Fonts генераторов. Например: http://www.gamedev.ru/projects/forum/?id=152527
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
А теперь несколько вопросов. Может кто подскажет правильное направление. 1. По поводу использования буфера(ов) вертексов. Написал класс меша и фабрику этого класса. При создании экземпляра класса меша создается динамический массив вертексов в RAM. Имеются функции создания примитивов - кубов, пирамид и т.п. Во многих источниках рекомендуют использовать один большой вертексный буфер. Возник вопрос как правильно организовать менеджмент вертексов и этого большого вертексного буфера. Сейчас поясню: есть такие варианты: 1) сделать отдельную функцию, которая склеит вертексы всех созданных экземпляров мешей и запишет их в VB. 2) в коде меша при изменении вертексов (например в конце метода LoadFromFile) отправлять в конец VB порцию вертексов только текущего меша. 3) для каждого экземпляра меша создавать свой уникальный VB. Очевидные проблемы: В первом варианте мы фактически при изменении одного меша вынуждены пересобирать весь VB, но зато точно знаем его размер и не используем лишнего места в VB. Во втором варианте мы не можем предугадать, сколько еще объектов нужно будет загрузить в VB, поэтому его размер мы не знаем. Можно конечно сделать заведомо больший VB, чем нужно, но тут 2 проблемы: фрагментация VB и пересоздание буфера если закончится место. В третьем варианте мы скорее всего теряем в производительности, т.к. делаем кучу вызовов SetStreamSource, но получаем значительное удобство. Насколько справедливо вышесказанное? Кто как выкручивался? |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Движок умер так и не успев появиться на свет, печально :-D
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Разработчики в отпуске? :-D
|
Ответ: Пишем 3D движок - замену Xors3D
Разработчики в работе :)
На текущий момент работаю над несколькими проектами. GeoVoxium3D перевожу на DX11. Возможно скоро придется переходить уже на DX12. Ветку движка с DX9 - забросил. (может зря - не знаю) От своей первоначальной идеи сделать minecraft-подобную игру - не отказался. Наоборот, вроде все улеглось по полочкам. В качестве эталона выбраны новинки из STEAM: это Rising World и StaudSoft`s Synthetic world. Продолжаю эксперименты со шлемами виртуальной реальности. Скоро придет экран для прототипа с разрешением 2560х1440. Буду экспериментировать :) Очень хочется найти 2-3 энтузиастов, чтобы какой-нибудь проект все-таки довести до релиза. Если кто желает помочь, присоединиться, внести предложения, конструктивно покритиковать - милости прошу :) Недавно согрешил - зарегистрировался ВКонтакте :) Попробую анонсы проектов там выложить. Может все-таки единомышленники найдутся. |
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Как дела обстоят с разработкой движка? :)
|
Ответ: Пишем 3D движок - замену Xors3D
Так чего с движком, будит или нет?
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
|
Ответ: Пишем 3D движок - замену Xors3D
Цитата:
А то интрига на 21 страницу и стоп точка с выбросом. |
Часовой пояс GMT +4, время: 14:04. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot