![]() |
Модераторы: Rickert |
![]() ![]() ![]() |
|
gepard |
|
||||||||||||||||||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 8 Всего: 40 |
Текстуры. Фильтрация, мипмаппинг.
Что есть текстура, друг? Текстура, грубо говоря, - это картинка наложенная на какую-либо поверхность. Все картинки состоят из пикселей - дискретный элемент, из которых формируется изображение. Каждый пиксель занимает на экране небольшую прямоугольную область, которая в любой момент времени отображается в одном цвете. Т.к. пиксели имеют цвет, было бы разумным поговорить о различных цветовых моделях.
Самая простая и распространенная цветовая модель. RGB - RED GREEN BLUE . При работе с этой системой надо указывать три параметра, которые означают, как бы количество краски одного из трёх цветов, добавляемое для смешивания. Например, 0 0 0 - чёрный цвет, мы не добавляли никакой краски; 1 1 1 - белый цвет, мы добавили всех красок поравну, чем меньше будет значение той или иной краски, тем темнее будет общий цвет; 0.5 0.5 0.5 - серый; 1 0 0 - красный. Так же возможна градация не от 0 до 1, а от 0 до 255, принцип один и тот же.
Y - яркость, Cb - задание синевы, Cr - задание красноты. Эту цветовую модель, например, использует, формат JPEG, при сохранение файла. По сути, главным в этой системе является компонент Y - он является полутоновым представлением цветного изображения. Если в RGB системе все компоненты примерно равнозначны, то в YcbCr - нет.
CMYK - CYAN MAGENTA YELLOW BLACK. Голубой, фиолетовый, жёлтый, чёрный. Тут надо отметить, что если будут значения 1 1 1 1 - чёрный цвет, 0 0 0 0 - белый. Здесь всё также предельно просто, как и с RGB
Эта модель разрабатывалась специально для человеческого глаза. Короче собралась толпа умных динозавров, вроде тех что сидели за TX-2, и решили стандартизировать наше восприятие цвета. Результатом их жизнедеятельности явилась эта цветовая модель, которая, надо отметить, является самой мощной из всех выше описанных. В ней есть цвета, которых нет в предыдущих моделях. Единственная проблема этой модели - её понимание: L - означает яркость, а a и b - хроматические компоненты (a - от зелёного к красному, b - от синего к жёлтому)
Этой моделью пользуются, в основном художники. Она очень удобна в использовании. H - это сам цвет, цветовой тон. S - насыщенность, процент добавления к цвету белой краски. В - яркость - процент добавления к цвету чёрной краски.
-----------------------------------------------------------------------------------------
Точечное текстурирование является, пожалуй, основным видом текстурирования. При точечном текстурировании выбирается отдельный фрагмент текстуры и используется, как цветовое значения для пикселей. Такое изображение при существующих стандартах уже просто неприемлемо. Именно благодаря этому виду фильтрации мы можем созерцать огромный ПИКСЕЛИ - квадраты, на стенах в играх.
Билинейная фильтрация - один из методов текстурирования, а не способ сглаживания текстур!!! Принцип действия этого метода текстурирования очень похож на точечный метод, но в отличие от него для выбора цвета пикселей используется не полное изображение, а блок из 4 текселей. Таким образом, повышается аккуратность при выборе цвета пикселя и достигается лучшая прорисовка отдельных мелких деталей изображения.
Второе рождение билинейная фильтрация получила в виде трилинейной фильтрации, принцип действия которой точно такой же, но используется улучшенный алгоритм расчета, который увеличивает точность прорисовки. Трилиниейная фильтрация, как и билинейная, использует блоки из 4 текселей, также как и в билинейной фильтрации, нормализуется изображение, затем нормализуется изображение из граничного блока из 4 текселей. Последним этапом производится анализ границы обоих блоков, в результате которого исправляются возможные ошибки и несоответствия на границе этих 2 блоков. В билинейной фильтрации достаточно часто можно увидеть линии, возникающие на границах блоков, которые исчезают при использовании трилинейной фильтрации. Кроме того, при использовании трилинейной фильтрации лучше убираются искажения и неровности при движении и при изменении угла зрения. Следует обратить внимание, что некоторые дефекты на приличной дистанции возникают даже при использовании трилинейной фильтрации. Изображение получается очень качественно только при более прямых углах зрения, при реальной же прорисовке, геометрические формы объекта могут быть нарушены.
Форма текстурированных объектов как при билинейной, так и при трилинейной фильтрации может искажаться, т.к. обе эти фильтрации являются изотропными - изображение фильтруется в определенной форме - в форме квадрата. Большинство же формируемых объектов не подходят под эту определенную и неизменную форму: для их качественной обработки необходимо использовать другой тип фильтрации - анизотропный. Анизотропная фильтрация обычно оперирует не менее чем 8 текселями, во все стороны mip-map уровней, при этом используется модель неопределенной заранее формы. В результате убираются шумы и искажения объектов, а изображение в целом получается более качественным.
-----------------------------------------------------------------------------------------
Что если мы смотрим на объект под каким-то углом, к примеру, на пол? Пол может занимать большую площадь, и для сохранения реалистичности, чем дальше он от нас, тем меньше его составляющие (к примеру, плитка). Для обеспечения этого, текстура должна определенным образом уменьшаться. К сожалению, простое изменение разрешения текстур, может повлечь за собой довольно неприятный эффект, когда одна текстура визуально как бы сливается с другой. Другой неприятный эффект может возникнуть, если тексель больше размером, чем требуемое количество пикселей. Это происходит, когда смотришь на текстуру, находящуюся на очень большом расстоянии. Для смягчения таких ситуаций и был создан mip-mapping (мип-маппинг). Эта технология работает очень просто: оригинальная текстура генерируется в различных ситуациях таким образом, чтобы корректно отображать текстуру на разных расстояниях и при разных углах зрения. При приближении к объекту показывается текстура с более высоким разрешением, а при отдалении - с низким. Таким образом, mip-mapping улучшает качество изображения и уменьшает неровности.
Это сообщение отредактировал(а) gepard - 9.3.2004, 10:16 -------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 7 Всего: 232 |
gepard, а куски "кода" - это что такое
![]() А так ничаво даже статья. Можно было б в FAQ по технологиям кидануть, имхо. -------------------- ![]() |
|||
|
||||
gepard |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 8 Всего: 40 |
Ничего ты не понял. Осмысли названия функций и значения присваеваемые переменным. -------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 7 Всего: 232 |
да понял я, понял с первого раза ![]() просто не очень удобно читать... -------------------- ![]() |
|||
|
||||
gepard |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 8 Всего: 40 |
Мы программисты, нам не превыкать. Зато неоднообразно и непресно. -------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
|||
|
||||
Kesh |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2488 Регистрация: 31.7.2002 Где: Германия, Saarbrü cken Репутация: нет Всего: 54 |
Хорошая статья... Все просто и понятно... Но вот код... Тогда уж на русском их называй...
-------------------- ![]() |
|||
|
||||
gepard |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 8 Всего: 40 |
Запомню на будущее. -------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
|||
|
||||
Kesh |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2488 Регистрация: 31.7.2002 Где: Германия, Saarbrü cken Репутация: нет Всего: 54 |
gepard да я не со зла, просто действительно неудобно читать...
P.S. А статья и правда классная -------------------- ![]() |
|||
|
||||
gepard |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 8 Всего: 40 |
Я рад, что хоть кто-то ценит. Считаю жизнь прожил не зря
![]() -------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
|||
|
||||
gepard |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 8 Всего: 40 |
Разве я это сказал? Век живи, век учись. Я всегда мотаю на ус то, что мне говорят, чего и вам желаю. Лишних знаний не бывает. Это сообщение отредактировал(а) gepard - 11.3.2004, 12:21 -------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
|||
|
||||
Костян |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 6.8.2004 Репутация: нет Всего: нет |
Напишишь статейку. www.e-brain.nm.ru
|
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 3 Всего: 172 |
В основном потому, что тормозить будет жутко. Огромные пикселя получаются когда стараются упростить рендеринг и делают маппинг не всех пикселей, а промежуточные значения интерполируют. Кстати неплохо было бы дописать уравнения текстуры, получилось бы лучше. Как и алгоритмы для билинейной и трилинейной фильтрации. А вообще хорошо ![]() -------------------- |
|||
|
||||
gepard |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: 8 Всего: 40 |
Domestic Cat
Если тебе интересно - есть ещё одна статья: http://forum.vingrad.ru/index.php?showtopic=19847 Это сообщение отредактировал(а) gepard - 14.8.2004, 08:59 -------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
|||
|
||||
Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: нет Всего: 73 |
К модераторам и лично к December'у:
жалко будет если тема затеряется... может переместите куда-нибудь? Так чтобы на виду была. -------------------- Теперь при чем :P |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: нет Всего: 54 |
А что такое ТЕКСЕЛЬ?
СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |