GAMES101 Lec 07~09: определение затенения, модель затенения, частота затенения, конвейер рендеринга графики, текстура

  • 3dMax экспортирует файл модели, содержащий содержимое: координаты вершин, нормали, отношения ребер,
  • модель модель
  • В пространстве есть модель камеры, и камеру можно разместить в исходном виде путем трансформации.
  • Преобразование модели трехмерного пространства в проекцию на экран
  • Растеризация путем сэмплирования Растеризация

    Следующий шаг — затенение
    1 Затенение: определение Определение затенения
    Процесс введения света и тени и различных цветов называется затенением
    Определение в этом уроке — это процесс применения материалов к объектамвставьте сюда описание изображения

    2 Модель отражения Блинна-Фонга Простая модель затенения
    Что касается модели затенения Блинна-Фонга,
    я ранее объяснял ее концепцию в учебных заметках LearnOpenGL — освещение 02: Основы освещения/Расширенное освещение.В
    то время я также использовал PPT учителя Яна и в качестве пояснительного материала используется видео, а реализована простая реализация (на примере точечного источника света),
    поэтому повторяться здесь не буду

    3 частоты затенения Частота затенения
    вставьте сюда описание изображения

    3.1 Плоское затенение

  • плоское затенение
    вставьте сюда описание изображения

3.2 Раскраска вершин

  • Затенение вершин
    Затенение выполняется один раз для каждой вершины, а значение цвета интерполируется.
    вставьте сюда описание изображения

3.3 Затенение пикселей

  • Затенение пикселей
    Затенение Фонга здесь относится к частоте затенения. Упомянутая ранее модель Блинна-Фонга представляет собой модель затенения, которая
    вычисляет нормаль по трем вершинам треугольника. Пиксели внутри треугольника интерполируют значение нормали. Для каждого пиксельного затенениявставьте сюда описание изображения

    3.4 Сравнение

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

    3.5 Метод расчета вершинных нормалей

  • Метод вычисления нормали вершины
    вставьте сюда описание изображения

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

Конвейер графики  (рендеринг в реальном времени) Конвейер рендеринга в реальном времени

об этой части

вставьте сюда описание изображения

вставьте сюда описание изображения

  Получение знаний на данный момент позволяет нам изучать API (такие как OpenGL, DirectX)
Рекомендуется здесь: ShaderToy, на этом веб-сайте нам нужно сосредоточиться только на том, как писать шейдеры.

вставьте сюда описание изображения

текущий рендеринг в реальном времени

вставьте сюда описание изображения

5 Отображение текстуры  Отображение текстуры

Что касается содержания наложения текстуры,
я   объяснил это в учебных заметках LearnOpenGL — Начало работы 05: Текстура.

  • Схематическая диаграмма в PPT является хорошим представлением этого процесса отображения.
  • вставьте сюда описание изображения

  • Дизайн самой текстуры можно бесшовно соединить: мозаично, метод проектирования бесшовно связанных текстур: Wang Tiling

6 Барицентрические координаты интерполяция барицентрических координат

  • интерполяция барицентрических координат
    вставьте сюда описание изображения

вставьте сюда описание изображения

 Расчет коэффициента определения с использованием площади

вставьте сюда описание изображения

Расчет коэффициента определения с использованием координат

вставьте сюда описание изображения

  • При использовании метода интерполяции координат центра координаты центра тяжести до и после проецирования могут изменяться, поэтому необходимо вычислять соответствующие координаты центра тяжести на соответствующем этапе интерполяции, и их нельзя повторно использовать по желанию
  • интерполировать

 вставьте сюда описание изображения

7 Применение текстур Применение текстуры

  • Интерполированные UV-координаты вычисляются на точке, затем запрашиваются на текстуре, а затем применяются по мере необходимости (простое приложение на рисунке, назначенное напрямую)
  • вставьте сюда описание изображения

8 Увеличение текстуры увеличение текстуры

Разрешение текстуры слишком маленькое, и несколько пикселей (пикселей) сопоставлены с одним и тем же текселем (пикселем текстуры).

  • Обходной путь → Интерполяция
  • вставьте сюда описание изображения

8.1 Билинейная интерполяция Билинейная интерполяция

Билинейная интерполяция: горизонтальная интерполяция + вертикальная интерполяция.
lerp — это аббревиатура линейной интерполяции.
На следующем рисунке показана интерполяция по ближайшим четырем точкам.

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

 Расстояние по вертикали и горизонтали между красной точкой и нижним левым углом четырех точек

вставьте сюда описание изображения

 вставьте сюда описание изображения

8.2 Бикубическая интерполяция Бикубическая интерполяция

Взятие 16 окружающих точек также используется для вертикальной и горизонтальной интерполяции.Используйте
4 точки каждый раз, чтобы сделать трехкратную интерполяцию вместо линейной разности.Двусторонняя трехсторонняя
интерполяция требует много вычислений, но эффект хороший.Об
этом метода, вы можете обратиться к этому великому богу.Познакомить с
взаимосвязью между алгоритмом бикубической интерполяции (бикубической интерполяцией) и графикой и
методами расчета
 

9 Проблемы с большими текстурами

  • Когда текстура слишком большая, один пиксель соответствует множеству текселей → Недостаточная частота дискретизации приводит к муаровому рисунку + алиасингу (aliasing)
    Пиксель на дальней нулевой плоскости соответствует большому блоку текстуры, простая точечная выборка не работает
    вставьте сюда описание изображения

 вставьте сюда описание изображения

Решение:
передискретизация, увеличение частоты дискретизации, но слишком расточительно

 вставьте сюда описание изображения

Выборка приведет к алиасингу, поэтому мы не делаем выборку, а получаем только определенный диапазон средних значений.

Это вопрос о точечном запросе и запросе диапазона

  • Запрос точки, дайте точку, получите значение точки

запрос диапазона, без выборки, по заданной площади, получить (среднее) значение площади


9.1 Многоуровневая градиентная текстура Mipmap

Многоуровневая текстура с постепенным расстоянием Mipmap
может выполнять быстрый запрос диапазона, но она является приблизительной и только квадратной.Что
касается содержимого Mipmap, я  объяснил это
в  части Учебных заметок LearnOpenGL - Начало работы 05: Метод окружения текстуры/Фильтрация текстуры в текстуре

  • Ниже приведена схематическая диаграмма в PPT.
    вставьте сюда описание изображения

Принципиальная схема расчета Mipmap
Сначала нам нужно узнать площадь, покрытую пикселями, и сделать приближение

При рассмотрении пикселя также учитывайте окружающие точки
, а затем сопоставьте их центры с UV, чтобы рассчитать расстояние
, поэтому вы можете использовать квадратную рамку с пунктирной линией, расстояние которой является длиной стороны, чтобы аппроксимировать неправильный четырехугольный
слой D. расстояние между пикселями отображения uv
в качестве примера берется логарифм 2.
Если размер области 1×1 D=0, то находим его на мипмапе самого исходного уровня.Если
размер области 4× 4 D=2, то найти его на мипмапе второго уровня, то есть на втором уровне это 4х4 станет 1х1, а потом перейти на второй уровень проверить значение этого пикселя, что это среднее значение этой области
вставьте сюда описание изображения

вставьте сюда описание изображения

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

Mipmap будет размывать детали на расстоянии,
потому что он может запрашивать только область окна, а интерполяция в конце концов только приблизительна.

  • Решением трилинейной интерполяции является анизотропная фильтрация.
    вставьте сюда описание изображения

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

    Анизотропная фильтрация позволяет нам выполнять запросы диапазона на длинных областях, но не на наклонных областях.Накладные расходы на создание графов с анизотропной фильтрацией (Ripmaps) в три раза больше ,
    чем у исходных.Анизотропия
    означает, что в разных направлениях его производительность отличается.
    X анизотропии - это сжатие в несколько раз, то есть сколько слоев добавляется от левого верхнего угла к правому нижнему углу

    EWA-фильтрация, разбивающая любую неправильную форму на множество различных кругов, чтобы покрыть эту форму.
    Естественно, несколько запросов могут охватывать ее, но это занимает много времени.

     10 Применение текстуры Различные карты
    текстур
    вставьте сюда описание изображения

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

    Существует множество типов текстурных карт.
    вставьте сюда описание изображения

    10.1 Карта окружающей среды Карта окружающего освещения

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

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

    10.2 Bump Mapping
    Текстура Bump Mapping записывает движение по высоте без изменения геометрической информации.Текстура
    создает искусственные ложные нормали, тем самым получая ложные цветовые эффекты и создавая эффекты рельефа.Благодаря определяемой пользователем
    разнице высот попиксельное возмущение изменение направления линии и нормального направления, результат окраски изменится

    Вычислить направление нормали: найти вертикальное направление после нахождения касательной
    вставьте сюда описание изображения

    Нормальный алгоритм в случае UV
    вставьте сюда описание изображения

     10.3 Отображение смещения Карта смещения
    аналогична вводу карты рельефа, но карта смещения действительно меняет геометрическую информацию, а смещение вершин более
    реалистично по сравнению с ним, потому что карта рельефа выявит наполнение на границе. , Карта смещения
    требует, чтобы треугольники модели были достаточно детализированы, а объем вычислений Высшее
    DirectX имеет метод динамической интерполяции, интерполирующий модель в соответствии с необходимостью и делающий модель более детализированной в зависимости от ситуации.
    вставьте сюда описание изображения

    10.4 Процедурные текстуры Процедурные текстуры

    Трехмерная текстура определяет значение любой точки пространства.Для
    такой текстуры нет реального изображения этой текстуры.Они
    определяют шумовую функцию трехмерного пространства.После различной обработки функция может стать что ему нужно
    вставьте сюда описание изображения
     

    10.5 Предварительно вычисленное затенение

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

    10.6 Твердотельное моделирование и объемный рендеринг

    Трехмерные текстуры широко используются при объемном рендеринге
    , таком как МРТ-сканирование, для получения информации об объеме, и используют эту информацию для рендеринга и получения результатов.

Supongo que te gusta

Origin blog.csdn.net/jiuzhouhi/article/details/123184307
Recomendado
Clasificación