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


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

lz : (2 недель назад) Оно там просто всё вместе лежит.
Folgen : (2 недель назад) Даже сам Товарищ Майор не нашел бы.
Folgen : (2 недель назад) Ого, ребусы.
lz : (2 недель назад) Я там постоянно.
lz : (2 недель назад) Можно початиться в реалтайме в телеге - https://t.me/joincha...j5MKUrxakTyCPwQ
lz : (2 недель назад) Тулзы качаются программой bootstrap_tools из бутстраппера (как скачать - у меня в подписи). Если хочется самим собирать, отпишитесь ещё, я инструкции по сборке допишу.
PA3UJIb : (2 недель назад) по ходу это из LLVM
PA3UJIb : (2 недель назад) cmake скрипты недописаны. А заголовочники сначала подумал, что из boost, но и там такого не нашел
Folgen : (2 недель назад) У меня вообще фигня с СиМэйк. Я уж подумал ну его. А там хедеры нужны от Полигона4.
Folgen : (2 недель назад) Вот-вот!
PA3UJIb : (3 недель назад) Не знаю, я не смог его "tools" собрать - многих заголовочных нету и хз где их брать.
Гость : (3 недель назад) У кого-нибудь есть полный пак инструментария от lz?
Yakim (Watco... : (14 Июль 2018 - 00:06) :D
Yakim (Watco... : (14 Июль 2018 - 00:06) nope
Yandersen : (13 Июль 2018 - 22:07) Айаяй. Поди Якимко заспамил чат стикерами. :)
Yandersen : (13 Июль 2018 - 22:06) Да лан, тут каждый день кто-нить из админов заглядывает. Как пропустили?
Nextovoy : (13 Июль 2018 - 01:04) Я писал
Гость : (10 Июль 2018 - 22:42) Сорьки, что так у нас. Чего три года так и не попытался в чат писнуть? :)
Nextovoy : (06 Июль 2018 - 16:15) Спасибо
lz : (04 Июль 2018 - 19:44) Активировал.
Гость : (03 Июль 2018 - 16:30) Активируйте его.
Гость : (03 Июль 2018 - 16:30) Мой профиль - Nextovoy
Гость : (03 Июль 2018 - 16:25) Написать в чат. Профиль в ручную админы активируют.
Гость : (03 Июль 2018 - 15:47) Ох уж эта дурацкая привычка писать всё раздельно засоряя чат. Это всё классно, конечно, но ребята, одменестраторы, так называемые. Третий год пытаюсь зарегистрироваться (буквально, третий) на этом форуме, но ПИСЬМО С ПОДТВЕРЖДЕНИЕМ НА ПОЧТУ ТАК И НЕ ПРИХОДИТ. Что делать?
Гость : (03 Июль 2018 - 15:46) Перешёл я всё же по ссылке Redoctor'a...
Гость : (03 Июль 2018 - 15:41) Пора уже M4
Гость : (29 Июнь 2018 - 00:18) итак м3
lz : (28 Июнь 2018 - 16:01) Мы тебе и тут передадим.
Гость : (28 Июнь 2018 - 13:13) Зачем в телеграмме делать?!Я вот например не могу зайти,написать в чат,подписаться и не только у меня это.
Redoctor : (24 Июнь 2018 - 19:35) https://vk.com/away....0_23001&cc_key=
Redoctor : (24 Июнь 2018 - 19:34) Тогда в телеграмме в поисковике набери Механоиды 3
Гость : (24 Июнь 2018 - 19:05) Не открывается.
Redoctor : (24 Июнь 2018 - 18:00) https://t.me/mechanoids3 Для тех кто в танке.
Yakim (Watco... : (15 Июнь 2018 - 01:33) КРУЗИИИС!!!11

Изображение
lz : (15 Июнь 2018 - 00:09) КРУЗИС!
lz : (15 Июнь 2018 - 00:09) ЗИС
lz : (15 Июнь 2018 - 00:09) КРУ
Yakim (Watco... : (14 Июнь 2018 - 14:50) Крузис и Королева тоже не в моем вкусе, а проигрывать нечего =D
lz : (14 Июнь 2018 - 13:55) Конечно, полюбить - так королеву, проиграть - так миллион, сделать - так крузис.
smt005 : (14 Июнь 2018 - 00:22) И от третьего лица тоже можно сделать простенькую игру. Простая игра это лучше чем ничего.
smt005 : (14 Июнь 2018 - 00:21) А, ты хочеш что-бы хит был, с "Crysis" графоном и контентом на 100500 часов игры?
Yakim (Watco... : (14 Июнь 2018 - 00:18) Ни топдовншутеры, ни стратежки)
Yakim (Watco... : (14 Июнь 2018 - 00:15) Не, спасибо, не в моем вкусе=)
smt005 : (13 Июнь 2018 - 23:13) Помнится за пару недель от скуки сделал. Делал по вечерам.
smt005 : (13 Июнь 2018 - 23:13)

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

Шрифты

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

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

 


 


#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 анонимных