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


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

Yakim (Watco... : (4 дней назад) :D
Yakim (Watco... : (4 дней назад) nope
Yandersen : (4 дней назад) Айаяй. Поди Якимко заспамил чат стикерами. :)
Yandersen : (4 дней назад) Да лан, тут каждый день кто-нить из админов заглядывает. Как пропустили?
Nextovoy : (5 дней назад) Я писал
Гость : (неделю назад) Сорьки, что так у нас. Чего три года так и не попытался в чат писнуть? :)
Nextovoy : (неделю назад) Спасибо
lz : (неделю назад) Активировал.
Гость : (2 недель назад) Активируйте его.
Гость : (2 недель назад) Мой профиль - Nextovoy
Гость : (2 недель назад) Написать в чат. Профиль в ручную админы активируют.
Гость : (2 недель назад) Ох уж эта дурацкая привычка писать всё раздельно засоряя чат. Это всё классно, конечно, но ребята, одменестраторы, так называемые. Третий год пытаюсь зарегистрироваться (буквально, третий) на этом форуме, но ПИСЬМО С ПОДТВЕРЖДЕНИЕМ НА ПОЧТУ ТАК И НЕ ПРИХОДИТ. Что делать?
Гость : (2 недель назад) Перешёл я всё же по ссылке Redoctor'a...
Гость : (2 недель назад) Пора уже M4
Гость : (2 недель назад) итак м3
lz : (2 недель назад) Мы тебе и тут передадим.
Гость : (2 недель назад) Зачем в телеграмме делать?!Я вот например не могу зайти,написать в чат,подписаться и не только у меня это.
Redoctor : (3 недель назад) https://vk.com/away....0_23001&cc_key=
Redoctor : (3 недель назад) Тогда в телеграмме в поисковике набери Механоиды 3
Гость : (3 недель назад) Не открывается.
Redoctor : (3 недель назад) https://t.me/mechanoids3 Для тех кто в танке.
Yakim (Watco... : (4 недель назад) КРУЗИИИС!!!11

Изображение
lz : (4 недель назад) КРУЗИС!
lz : (4 недель назад) ЗИС
lz : (4 недель назад) КРУ
Yakim (Watco... : (4 недель назад) Крузис и Королева тоже не в моем вкусе, а проигрывать нечего =D
lz : (4 недель назад) Конечно, полюбить - так королеву, проиграть - так миллион, сделать - так крузис.
smt005 : (4 недель назад) И от третьего лица тоже можно сделать простенькую игру. Простая игра это лучше чем ничего.
smt005 : (4 недель назад) А, ты хочеш что-бы хит был, с "Crysis" графоном и контентом на 100500 часов игры?
Yakim (Watco... : (4 недель назад) Ни топдовншутеры, ни стратежки)
Yakim (Watco... : (4 недель назад) Не, спасибо, не в моем вкусе=)
smt005 : (4 недель назад) Помнится за пару недель от скуки сделал. Делал по вечерам.
smt005 : (4 недель назад)
smt005 : (4 недель назад) Или например такое, только с моделями из игры -> https://youtu.be/RFDdN5dcX8s
smt005 : (4 недель назад) Yakim, да сами себя пните... :) Сделайте что-то, хотя бы уровня "Scrolling TopDown Shooter".
Yakim (Watco... : (12 Июнь 2018 - 22:17) так что, думаю завтра с утреца стартану марафон)
Yakim (Watco... : (12 Июнь 2018 - 22:15) хе-хе, не сомневайся, я в чате по уе уже поинтересовался, сказали обалденный сериал)))
Yandersen : (12 Июнь 2018 - 20:56) Оооооо, поди ща залипнет на пару дней, стопудофф. :)
Yakim (Watco... : (12 Июнь 2018 - 18:28) Окей гляну)
Yandersen : (12 Июнь 2018 - 16:23) Сериал Пространство посмотри. Не по части Мехов, просто шикарен, авось ману доставит.
Yakim (Watco... : (11 Июнь 2018 - 18:50) Дуст и ты уже закаленные и пустые, надож где-то ману доставать)))
Yakim (Watco... : (11 Июнь 2018 - 18:49) Думаю, кого быть пнуть, что-бы тот пнул в ответ да по сильнее.
Yakim (Watco... : (11 Июнь 2018 - 18:48) Давненько и не маленько хе-хе, делать нечего, прокрастинирую =)
Yandersen : (11 Июнь 2018 - 17:46) Якимка, ты там шо, упоролсо маленько? Чиво картинами опспамилсо?
Yakim (Watco... : (09 Июнь 2018 - 22:27) Изображение

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

Шрифты

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МБ   72 - Раз(а) скачано

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

 


 


#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
Документация и инструкции по установке доступны по ссылке:
 




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

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