Перейти к содержимому


Свернуть чат Чат Открыть чат во всплывающем окне

Yakim (Watco... : (неделю назад) КРУЗИИИС!!!11

Изображение
lz : (неделю назад) КРУЗИС!
lz : (неделю назад) ЗИС
lz : (неделю назад) КРУ
Yakim (Watco... : (неделю назад) Крузис и Королева тоже не в моем вкусе, а проигрывать нечего =D
lz : (неделю назад) Конечно, полюбить - так королеву, проиграть - так миллион, сделать - так крузис.
smt005 : (неделю назад) И от третьего лица тоже можно сделать простенькую игру. Простая игра это лучше чем ничего.
smt005 : (неделю назад) А, ты хочеш что-бы хит был, с "Crysis" графоном и контентом на 100500 часов игры?
Yakim (Watco... : (неделю назад) Ни топдовншутеры, ни стратежки)
Yakim (Watco... : (неделю назад) Не, спасибо, не в моем вкусе=)
smt005 : (неделю назад) Помнится за пару недель от скуки сделал. Делал по вечерам.
smt005 : (неделю назад)
smt005 : (неделю назад) Или например такое, только с моделями из игры -> https://youtu.be/RFDdN5dcX8s
smt005 : (неделю назад) Yakim, да сами себя пните... :) Сделайте что-то, хотя бы уровня "Scrolling TopDown Shooter".
Yakim (Watco... : (неделю назад) так что, думаю завтра с утреца стартану марафон)
Yakim (Watco... : (неделю назад) хе-хе, не сомневайся, я в чате по уе уже поинтересовался, сказали обалденный сериал)))
Yandersen : (неделю назад) Оооооо, поди ща залипнет на пару дней, стопудофф. :)
Yakim (Watco... : (неделю назад) Окей гляну)
Yandersen : (неделю назад) Сериал Пространство посмотри. Не по части Мехов, просто шикарен, авось ману доставит.
Yakim (Watco... : (неделю назад) Дуст и ты уже закаленные и пустые, надож где-то ману доставать)))
Yakim (Watco... : (неделю назад) Думаю, кого быть пнуть, что-бы тот пнул в ответ да по сильнее.
Yakim (Watco... : (неделю назад) Давненько и не маленько хе-хе, делать нечего, прокрастинирую =)
Yandersen : (неделю назад) Якимка, ты там шо, упоролсо маленько? Чиво картинами опспамилсо?
Yakim (Watco... : (неделю назад) Изображение
Yakim (Watco... : (2 недель назад) no, you are blind
Гость : (2 недель назад) Изображение
lz : (2 недель назад) Изображение
Yakim (Watco... : (2 недель назад) Изображение
Гость : (2 недель назад) Подкорректирую: скорее всего, Механоидов в названии уже не будет, кхм.
Гость : (3 недель назад) Не будет М3!.. :(
Yakim (Watco... : (3 недель назад) Нихуяшечки от нас не зависит)
Yandersen : (4 недель назад) Зависит от нас самих. От Скаев - надежды нет.
Гость : (4 недель назад) народ я тут хотел узнать есть шанс на меха 3 ?
Yakim (Watco... : (4 недель назад) точно? :huh: а если найду? :lol:
lz : (4 недель назад) да не, я не)
Yakim (Watco... : (4 недель назад) Егор, ты говоришь так. будто у тебя они есть, так вот, че по чем?))))
Гость : (4 недель назад) Вот бы сейчас, в 2018, читы на мехов гуглить...
lz : (4 недель назад) Ты просто без читов гоняешь.
Yandersen : (4 недель назад) Ниправда, этот сукасадист должен существовать, его не может не быть! Иначе на кого тяготы жизни сваливать?
Yakim (Watco... : (4 недель назад) Юморист от бога, которого нет)))
Гость : (4 недель назад) Бля, я думал это поиск
Гость : (4 недель назад) Читы
Yakim (Watco... : (16 Май 2018 - 22:49) Ну как-бы да, насколько я помню, Дуст и Сплайн основатели =) Кажется идея Дуста, реализация Сплайна.
lz : (16 Май 2018 - 21:10) Вон даже свалкер2 будет, а ты говоришь. И P4 будет)
Yandersen : (16 Май 2018 - 17:18) ессниошибаюсь. Якимка, подтверди?..

Фотография
- - - - -

Шрифты

Font char bitmap bmp ttf

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 11

#1 OFFLINE   Yandersen

Yandersen

    Диванный теоретик

  • Админ
  • 454 сообщений
  • Откуда:Canada
  • Настоящее имя:Ян

Отправлено 23 Апрель 2015 - 09:03

Склепал маленькую прогу для выдирания шрифтов в виде битмапов:

Fonts Ripper - v1.1.1.0 (21 June 2015).

Вот исходники.

 

Прога позволяет выбрать шрифт (стандартный виндовый диалог) и сохранить битмапы всех 256 символов в отдельные .bmp файлы или в один общий .bmp или .glt файл (glt - мой формат текстур для OpenGL). Разумеется, в общий файл корректно сохранять лишь fixed-width fonts (Courier, Lucida console и пр.).

 

Генерируемые картинки 32-битные, т.е. имеют альфа-канал. Альфа вычисляется автоматически - суммируются все три цветовых канала, вычисляется среднее значение и результат вычитается из 255. В результате альфа=255 для символа и 0 вокруг него (символы НЕпрозрачные)

 

При сохранения прога создаёт папку, куда и сбрасывает все генерируемые картинки.

 

Зачем сие нннада? Шоб текстурки для шрифтов легко мутить можно было.



#2 OFFLINE   Yandersen

Yandersen

    Диванный теоретик

  • Админ
  • 454 сообщений
  • Откуда:Canada
  • Настоящее имя:Ян

Отправлено 23 Апрель 2015 - 21:00

Апдэйт: теперь прога умеет сохранять шрифты в *.glt формате (т.е. готовые текстуры, с мипмапами). Правда, для сохранения в *.glt формате она юзает кое-какие функции из OpenGL4.5. В принципе, я мог бы спустить требования до версии 3.0, но только если кто очень потребует. :) Но в битмапы сохраняет вне зависимости от ГЛ.



#3 OFFLINE   Yandersen

Yandersen

    Диванный теоретик

  • Админ
  • 454 сообщений
  • Откуда:Canada
  • Настоящее имя:Ян

Отправлено 21 Июнь 2015 - 22:09

Маленькая доработка - добавил возможность сохранения шрифта в *.glt в одноканальном (чёрно-белом) формате. Т.е. белые непрозрачные буквы на чёрном прозрачном фоне.



#4 OFFLINE   PA3UJIb

PA3UJIb

    Серый

  • Создатель
  • 171 сообщений

Отправлено 11 Ноябрь 2015 - 17:43

Что называется, из последних наработок :

по факту повторил урок № 17 от NeHe - 2-мерные текстурные шрифты

шрифт хранится в виде текстуры с доп.заголовком, описывающем саму текстуру + массив 256 ширинок для каждого символа шрифта

lucida_sans_u.png

Исполняемые файлы: Прикрепленный файл  fontDemo.7z   1,1МБ   70 - Раз(а) скачано

Исходники:Прикрепленный файл  fontDemo_source.7z   156,92К   71 - Раз(а) скачано

 


 


#5 OFFLINE   Yandersen

Yandersen

    Диванный теоретик

  • Админ
  • 454 сообщений
  • Откуда:Canada
  • Настоящее имя:Ян

Отправлено 12 Ноябрь 2015 - 08:48

Отличненько пашет на вид. А коду наваял, я смотрю, шо ппц...  :)

И вот в упор не пойму, чего ты так до сих пор не интегрировал в свой проект мои LoadGL.h и GLSL.hpp?! ЛоадГЛ объявляет и автозагружает все ОпенГЛ функции до 4.5 включительно избавляя от надобности подключения стандартных ГЛ хеадеров и инициализации функций, а в ГЛСЛ вся векторная математика точь-в-точь как в шейдерах. притом на ассемблере написанная. Стандарт же, ничего отсебятинного. Насчёт остальных своих хеадеров за такое не ручаюсь.  :)

 

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



#6 OFFLINE   PA3UJIb

PA3UJIb

    Серый

  • Создатель
  • 171 сообщений

Отправлено 12 Ноябрь 2015 - 16:14

И вот в упор не пойму, чего ты так до сих пор не интегрировал в свой проект мои LoadGL.h и GLSL.hpp?

УЗБАКОЙСЯ. Пока незачем мне столько функций и констант разом. Чуток подключил и радуюсь. Да и математика у меня тоже временная. Всё будет, не спеши.
 
 

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

Какие конкретно тебя интересуют символы? А то я пока только первые 256 закатал. И беру из таблицы не символ, а его номер по коду.
У меня на каждый символ конкретно его ширина записана в массиве. Так что ошибочных текстурных координат не будет.

А коду наваял, я смотрю, шо ппц...

Дык это не за полгода, а за две недели. И всё равно мне не нравится. А я хочу идеально всё чтоб было.

И это, нету ни у кого шрифта из вторых мехов? Точнее двух шрифтов - тонкого и толстого (трафаретного)? А то чёта ломает меня парсер писать для big.dds и big.fdf.

 


#7 OFFLINE   lz

lz

    True Warrior

  • Админ
  • 213 сообщений

Отправлено 12 Ноябрь 2015 - 21:24

1. Вы изобрели libpango? http://www.pango.org Рендерится любой шрифт нужной комбинацией библиотек pango, cairo, fontconfig, freetype, harfbuzz.

2. Разиль, нет файла солюшена студии .sln Понятно, что запускается через vcxproj, но всё же.

3. Ян, почему не включать твой код? Повторю, что ты код пишешь для себя. http://aim-fans.ru/i...opic=147&p=1671

 

 

Вапще подразумевается, что программисту-пользователю не потребуется лазить по моему коду - лишь инклюд и юз как аффтар описал. Если что не так или надо ещё что - трясите аффтара, не ковыряйте его код самостоятельно. Такая идеология.

Твои файлы разобрать невозможно, хотя бывает нужно. Нельзя поставлять код, не предполагая использованием другими. Это равносильно поставке блоба - скомпилированной библиотеки и хедеров с объявлениями. С включением файлов в проект ты так и не разобрался, всё через 1 файл. Можно было бы вынести эти функции в библиотеку - отдельный проект, - которую можно подключать другим людям к своим проектам. Код у Разиля как раз неплохо оформлен (не вчитывался в смысл).


Polygon-4
Документация и инструкции по установке доступны по ссылке:
 

#8 OFFLINE   PA3UJIb

PA3UJIb

    Серый

  • Создатель
  • 171 сообщений

Отправлено 12 Ноябрь 2015 - 21:44


Вы изобрели libpango?

Ага, мы те еще изобретатели велосипедов :)


Разиль, нет файла солюшена студии .sln Понятно, что запускается через vcxproj, но всё же

Ну, при старте vcxproj решение создастся дефолтное, его и пользовать можно сохранив. А вообще, не знаю как CMake конфиги создаются, вот  выкладываю так. Как нуб.


 


#9 OFFLINE   lz

lz

    True Warrior

  • Админ
  • 213 сообщений

Отправлено 12 Ноябрь 2015 - 22:33

Симейк гляди у меня в проектах. Вот простенький

https://github.com/a.../CMakeLists.txt

Но тут уходит действие в подкаталог вызовом add_subdirectory(src). Можно дальше проследить

https://github.com/a.../CMakeLists.txt

или тут (проще)

https://github.com/a.../CMakeLists.txt

 

Минимальный конфиг:

add_executable(test test.cpp)

Более полный:

cmake_minimum_required(VERSION 2.8.11)

project(my_project_name CXX) # Либо другие языки через пробел. Пример: C CXX ASM

# перечисление файлов
set(proj_src
    file1.cpp
    file2.cpp
    header1.h
)

# регулярное выражение
file(GLOB proj_src2 "*.cpp" "*.h")

# регулярное выражение с рекурсивным поиском в подкаталогах
file(GLOB_RECURSE proj_src3 "*.cpp")

add_executable(proj ${proj_src} ${proj_src2} ${proj_src3})

После этого в каталоге с файлом CMakeLists.txt выполняешь: cmake -H. -Bwin

-H - текущий каталог,

-B - каталог сборки.

Будут сгенерированы файлы студии (sln, проекты и т.д.).

Стильно, модно, молодёжно.


Polygon-4
Документация и инструкции по установке доступны по ссылке:
 

#10 OFFLINE   Yandersen

Yandersen

    Диванный теоретик

  • Админ
  • 454 сообщений
  • Откуда:Canada
  • Настоящее имя:Ян

Отправлено 12 Ноябрь 2015 - 23:20

Какие конкретно тебя интересуют символы? А то я пока только первые 256 закатал. И беру из таблицы не символ, а его номер по коду. У меня на каждый символ конкретно его ширина записана в массиве. Так что ошибочных текстурных координат не будет.

Ну у тебя ж текстура 16х16 символов, значит на каждый символ отводится квадратик. Значит макс. ширина символа равна его высоте, не больше. А табовые символы в несколько раз по ширине больше, чем по высоте. Значит залезет на соседние символы, так?

Ян, почему не включать твой код? Повторю, что ты код пишешь для себя. http://aim-fans.ru/i...opic=147&p=1671

Два вышеуказанных хеадера являются своего рода стандартом, т.к. соответствуют официальным документациям ОпенГЛ. Поэтому только про них и речь. Не будь какашкой. Вдобавок, ОпенГЛ остановился в своём развитии на версии 4.5, поэтому и хеадеры меняться не будут, так что эти хеадеры - конечный продукт.

Стильно, модно, молодёжно.
Ну да, намного проще, чем явно инклюд прописать, указав файл, чьи кодоресурсы используешь.

#11 OFFLINE   PA3UJIb

PA3UJIb

    Серый

  • Создатель
  • 171 сообщений

Отправлено 13 Ноябрь 2015 - 03:18


Ну у тебя ж текстура 16х16 символов, значит на каждый символ отводится квадратик. Значит макс. ширина символа равна его высоте, не больше. А табовые символы в несколько раз по ширине больше, чем по высоте. Значит залезет на соседние символы, так?

В общем случае у меня сама текстура имеет размеры imageWidth X imageHeight. Сама текстура разбита на 256 ячеек размером cellWidth X cellHeight. Каждый символ имеет свою ширину, записанную в массиве width[256]. То есть конкретный символ номер [i] будет рисоваться на полигоне размера width[i] X cellHeight.

Пока что у меня не было необходимости рисовать символ шириной больше, чем cellWidth.

А если и возникнет, подозреваю, что это будет редкость, и его можно будет вырезать особым образом, явно прописав это в коде.

О, и тут я сообразил, что я же не редактор текста делаю.

 


Будут сгенерированы файлы студии (sln, проекты и т.д.). Стильно, модно, молодёжно.

Хорошо, попробуем в следующий раз.


 


#12 OFFLINE   lz

lz

    True Warrior

  • Админ
  • 213 сообщений

Отправлено 13 Ноябрь 2015 - 05:41


Ну да, намного проще, чем явно инклюд прописать, указав файл, чьи кодоресурсы используешь.

Ты опять всё перепутал.

Нельзя ставить в один ряд инклюды для компиляции программы и указание файла для включения его в проект при генерации файлов проекта.


Polygon-4
Документация и инструкции по установке доступны по ссылке:
 




Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных