|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.01.2011, 12:32 | #11 |
c++, dx/ogl
Форумчанин
Регистрация: 10.11.2008
Сообщений: 131
|
Ulex, надо бы еще автоматическую генерацию метрик прикрутить к программе)
Ну и вообще – да, идея оригинальная для каждой буквы помнить ее метрику. Впрочем отчасти уж очень это походит на вывод текста в ogl там тоже есть нечто общей текстуры символов вот только метрика выводимых символов «считается на ходу». Но возможно, в таком случае выводится нечто вроде моноширинного шрифта, а не пропорционального.
“Batch, Batch, Batch:” What Does It Really Mean?
I am a donut! Ask not how many tris/batch, but rather how many batches/frame! |
04.01.2011, 18:45 | #12 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
Я немного не понял, что особенного в твоей метрике Ulex. Очень похоже на bitmap шрифты. Или это они и есть?
|
04.01.2011, 21:21 | #13 | |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Цитата:
Вот кусочек сборной текстуры шрифта: Шрифт.jpg В текстуре и параметры, т.е. размеры каждого символа и его код. Для каждого шрифта и размера нужна отдельная текстура, иначе если создать сразу крупные символы а потом в процессе отрисовки уменьшать, будет потеря драгоценного времени. Гораздо проще сразу создать все нужные текстуры шрифтов и спокойно использовать. Программно задается только цвет, и то при загрузке сразу на нужные цвета, двумерный массив font1[0..9, 0..255], на 10 цветов.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Последний раз редактировалось Beermonza; 04.01.2011 в 21:39. |
|
05.01.2011, 02:07 | #14 | |||
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
Цитата:
Цитата:
Цитата:
Нарезальщик вряд ли сможет определить какому символу какую шапку сверху надо приклеить. Т.е. всё равно это придётся делать руками. Или же изменить весь механизм рисования (точнее сделать его совсем уж универсальным) и отступы перенести на этап отрисовки, но тогда надо менять структуру метрики (отступ сверху и отступ слева). Пока что этого делать не хочется, ибо как выяснилось это всего навсего банальные bitmap шрифты.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
|||
05.01.2011, 02:23 | #15 | |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
Цитата:
|
|
05.01.2011, 20:20 | #16 | |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Ulex, я к тебе без претензий вообще, ты молодец, и очень приятно, что еще кого-то, кроме вашего покорного слуги заботит не легкий путь новичка, и что нужно раскрывать любые аспекты создания игр боле полно, ...в данном случае твой редактор показывает на примере, что шрифты берутся не сами по себе, за их появлением на экране прячется целая структура, которую надо бы понимать. Я сейчас не имею в виду сборщиков игр посредством движков, а именно начинающих программистов, пытающихся набрать опыт на создании игр.
Хочу отметить несколько вещей, просто так, чтобы поддержать разговор, ...ну, и на вопросы ответить. Цитата:
Разумеется, я вручную проставил трассировку, только воспользовался уже готовым редактором, и решил убить двух зайцев одним выстрелом, упаковав в текстуру и кодированные данные. Собственно, редакторы шрифтов существуют только потому, что у каждого типа проекта/движка могут быть свои правила хранения и представления шрифтов, нарушать которые не следует, вот создатели и сотворили редактор, иначе это был бы один принцип и один и тот же редактор на все времена. Что хочу заметить. В своем методе я постарался уменьшить объем памяти сборной текстуры, именно поэтому по ширине символы занимают ровно столько пикселей, сколько им нужно. В текстуре полный набор символов, все те, что могут быть напечатаны с клавиатуры, включая пробел. Формат PNG, весь ненужный альфа-канал пакуется. Итого Verdana 12-й кегель (17 пкс высоты) 161 символ - 7,65К в ОЗУ после загрузки естественно больше, в районе 96,8К, особых чудес не бывает с растрами, и это полный набор. Стало быть, у меня вот такой велосипед построен, у кого-то другой, ...а кто-то любит только кататься ))
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
|
06.01.2011, 21:07 | #17 | |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
Цитата:
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
|
13.02.2011, 18:47 | #18 | ||
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
Final release
Финальная версия.
Добавлено: -сдвиги символов слева и сверху. Конечная структура метрики теперь выглядит так: Цитата:
-добавлена возможность выгрузить индексированную метрику. Тут надо пояснить что это такое и зачем. Для ускорения отрисовки текста в начало файла метрики добавляется таблица смещений. Таблица состоит из 256 элементов типа WORD. Каждое слово этой таблицы содержит смещение на сруктуру imetrik в этом же файле. Связь кода символа и региона получается однозначной. Код символа - это индекс в таблице смещений. Берём из таблицы смещений элемент с порядковым номером кода символа - он содержит смещение в байтах от базового адреса файла метрики на структуру: Цитата:
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C++ Изменение шрифта | Memfis_nya | Помощь студентам | 14 | 04.11.2010 12:18 |
Метрики windows | alxd | Помощь студентам | 2 | 17.09.2009 14:42 |
размер шрифта | varelik | Общие вопросы Delphi | 10 | 16.09.2009 13:58 |
Метрики | LastAngel | Общие вопросы Delphi | 1 | 03.05.2008 17:09 |