Меню
Разработки
Разработки  /  Информатика  /  Презентации  /  Презентация по информатике "Теоретические основы трехмерной графики"

Презентация по информатике "Теоретические основы трехмерной графики"

Презентация познакомит учащихся с понятиями трёхмерной графики.
17.01.2016

Описание разработки

3D Graphics.

Трехмерная графика (3D Graphics) – визуальное отображение трехмерной сцены или объекта. Для представления трехмерной графики на двумерном устройстве (дисплее) применяют рендеринг.

Rendering.

Рендеринг (rendering) – процесс создания реалистичных изображений на экране, использующий математические модели и формулы для добавления цвета, тени и т. д.

Трехмерная модель

Из 3D в 2D.

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

Презентация по информатике Теоретические основы трехмерной графики

Камера.

Аффинные преобразования.

При смене позиции наблюдателя требуется произвести преобразования координат, связанные с поворотом объекта, его масштабированием и учетом перспективы.

Такие преобразования называются аффинными преобразованиями.

Пример преобразования.

Аффинные преобразования применяются при повороте и трансформации объекта (масштабирование, скос).

Допустим, что при повороте ординаты точек (у-координаты) не меняются. Значит, поворот происходит относительно оси y.

Содержимое разработки

Теоретические основы трехмерной графики Теория построения трехмерных изображений и рендеринга.

Теоретические основы трехмерной графики

Теория построения трехмерных изображений и рендеринга.

3D Graphics Трехмерная графика (3D Graphics) – визуальное отображение трехмерной сцены или объекта. Для представления трехмерной графики на двумерном устройстве (дисплее) применяют рендеринг .

3D Graphics

  • Трехмерная графика (3D Graphics) – визуальное отображение трехмерной сцены или объекта. Для представления трехмерной графики на двумерном устройстве (дисплее) применяют рендеринг .
rendering Рендеринг (rendering) – процесс создания реалистичных изображений на экране, использующий математические модели и формулы для добавления цвета, тени и т. д.

rendering

  • Рендеринг (rendering) – процесс создания реалистичных изображений на экране, использующий математические модели и формулы для добавления цвета, тени и т. д.
Трехмерная модель

Трехмерная модель

Из 3 D в 2 D Для отображения трехмерной модели на двухмерном экране монитора требуется произвести специальные математические преобразования трехмерных координат всех точек в двухмерные.

Из 3 D в 2 D

  • Для отображения трехмерной модели на двухмерном экране монитора требуется произвести специальные математические преобразования трехмерных координат всех точек в двухмерные.
Камера

Камера

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

Аффинные преобразования

  • При смене позиции наблюдателя требуется произвести преобразования координат, связанные с поворотом объекта, его масштабированием и учетом перспективы.
  • Такие преобразования называются аффинными преобразованиями
Пример преобразования Аффинные преобразования применяются при повороте и трансформации объекта (масштабирование, скос).  Допустим, что при повороте ординаты точек (у-координаты) не меняются. Значит, поворот происходит относительно оси y .

Пример преобразования

  • Аффинные преобразования применяются при повороте и трансформации объекта (масштабирование, скос).
  • Допустим, что при повороте ординаты точек (у-координаты) не меняются. Значит, поворот происходит относительно оси y .
Освещение Модель начинает выглядеть трехмерной только после моделирования освещения, а это напрямую связано с положением плоскостей (полигонов) модели, точнее, с направлением перпендикуляров к плоскостям – нормалей.  Степень освещенности точки зависит от угла падения лучей света. Чем меньше угол между нормалью и лучом света, тем больше освещенность точки поверхности.

Освещение

  • Модель начинает выглядеть трехмерной только после моделирования освещения, а это напрямую связано с положением плоскостей (полигонов) модели, точнее, с направлением перпендикуляров к плоскостям – нормалей.
  • Степень освещенности точки зависит от угла падения лучей света. Чем меньше угол между нормалью и лучом света, тем больше освещенность точки поверхности.
Нормали Если взять ровную поверхность, то нормали в каждой ее точке будут одинаковыми и освещенность также будет одинаковой. А если поверхность неровная, то нормали в каждой точке будут разными - и освещенность тоже.

Нормали

  • Если взять ровную поверхность, то нормали в каждой ее точке будут одинаковыми и освещенность также будет одинаковой.
  • А если поверхность неровная, то нормали в каждой точке будут разными - и освещенность тоже.
Модель освещенности Фонга Вклад в это значение от каждого источника света зависит от расстояния между источником света и точкой на поверхности.

Модель освещенности Фонга

  • Вклад в это значение от каждого источника света зависит от расстояния между источником света и точкой на поверхности.
Модель освещенности Фонга

Модель освещенности Фонга

Модель Фонга-Блинна

Модель Фонга-Блинна

Дальнейшее развитие В дальнейшем, исследователи придумывали иные способы вычисления этой составляющей, более сложные (Blinn, Cook-Torrance, Ward), учитывающие распределение энергии света, его поглощение материалами и рассеивания в виде диффузной составляющей.

Дальнейшее развитие

  • В дальнейшем, исследователи придумывали иные способы вычисления этой составляющей, более сложные (Blinn, Cook-Torrance, Ward), учитывающие распределение энергии света, его поглощение материалами и рассеивания в виде диффузной составляющей.
Игра света и тени С целью расчета теней и полутеней (диффузных теней) применяются различные алгоритмы – Ray tracing (трассировка лучей), R adiosity (излучение). На рисунке представлены результаты просчета теней и диффузной засветки при помощи R adiosity.

Игра света и тени

  • С целью расчета теней и полутеней (диффузных теней) применяются различные алгоритмы – Ray tracing (трассировка лучей), R adiosity (излучение).
  • На рисунке представлены результаты просчета теней и диффузной засветки при помощи R adiosity.
Камера Свет  голова Объекты Действия с объектами тело окончание ноги Структура программы

Камера

Свет

голова

Объекты

Действия с объектами

тело

окончание

ноги

Структура программы

Graphics3D 640,480,16,1   Устанавливает 3D Графический способ.    Синтакс такой: Graphics3D ширина, высота, глубина цвета, режим   Ширина, высота – размер создаваемого экрана  Глубина – глубина цвета – 16, 24 или 32 бита на пиксель.  Режим:   0 – оконный во время разработки (если возможно), полноэкранный в .exe формате;   1 –полноэкранный   2 –оконный   3 –оконный, с возможностью изменения размеров окна. 

Graphics3D 640,480,16,1 Устанавливает 3D Графический способ.   Синтакс такой: Graphics3D ширина, высота, глубина цвета, режим  Ширина, высота – размер создаваемого экрана Глубина – глубина цвета – 16, 24 или 32 бита на пиксель. 

Режим:  0 – оконный во время разработки (если возможно), полноэкранный в .exe формате;  1 –полноэкранный  2 –оконный  3 –оконный, с возможностью изменения размеров окна. 

SetBuffer BackBuffer() – установить поток, буфер.   cam=CreateCamera() – это самая основная команда в 3D программах. Если не будет даже  одной камеры то 3D программа работать не будет, камера-это тоже самое, что и наши глаза, через неё мы видим окружающий 3D мир.    Lit=CreateLight() – Это команда создает источник света. Можно изменять тип света, в скобки вписываем следующие значения:    1 :направленный   2 :точка   3 : пятно 

SetBuffer BackBuffer() – установить поток, буфер.  

cam=CreateCamera() – это самая основная команда в 3D программах. Если не будет даже  одной камеры то 3D программа работать не будет, камера-это тоже самое, что и наши глаза, через неё мы видим окружающий 3D мир.  Lit=CreateLight() – Это команда создает источник света. Можно изменять тип света, в скобки вписываем следующие значения:  1 :направленный  2 :точка  3 : пятно 

cub=CreateCube() – Это мы создаем 3D объект куб. Геометрические объекты: CreateSphere ()  - сфера   CreateCylinder ()  - цилиндр   CreateCone() – конус PositionEntity cub,0,0,5 – Эта команда помещает объект в позиции и в 3D месте.  ScaleEntity cub,1,0.3,1 – Изменяет размер объекта    RotateEntity cub,0,40,0 – Вращает объект так, чтобы это было при абсолютной ориентации. 

cub=CreateCube() – Это мы создаем 3D объект куб.

Геометрические объекты:

CreateSphere ()  - сфера CreateCylinder ()  - цилиндр CreateCone() – конус

PositionEntity cub,0,0,5 – Эта команда помещает объект в позиции и в 3D месте. 

ScaleEntity cub,1,0.3,1 – Изменяет размер объекта  RotateEntity cub,0,40,0 – Вращает объект так, чтобы это было при абсолютной ориентации. 

TurnEntity cub,0.6,0.2,0.3 – вращение TurnEntity entity,pitch#, yaw#, roll#, [,global]    Tpitch# - X угол и эквивалентна наклону вперед / назад.    Yaw# - Y угол и эквивалентен вращению налево / вправо.    Roll# - Z угол и эквивалентен наклону налево / вправо.    UpdateWorld ()– UpdateWorld [anim_speed#]    anim_speed# (необязательный) – скорость для мультипликации. Установлен по  умолчанию в 1. 

TurnEntity cub,0.6,0.2,0.3 – вращение

TurnEntity entity,pitch#, yaw#, roll#, [,global]  Tpitch# - X угол и эквивалентна наклону вперед / назад.  Yaw# - Y угол и эквивалентен вращению налево / вправо.  Roll# - Z угол и эквивалентен наклону налево / вправо.  UpdateWorld ()– UpdateWorld [anim_speed#]  anim_speed# (необязательный) – скорость для мультипликации.

Установлен по  умолчанию в 1. 

Repeat   …………………………… .  Until KeyHit(1) – Между этими двумя командами будет происходить основной цикл игры. При нажатии кнопки ESC начинает читать следующую команду. 

Repeat 

…………………………… .

Until KeyHit(1) – Между этими двумя командами будет происходить основной цикл игры. При нажатии кнопки ESC начинает читать следующую команду. 

End – Завешает программу ________________________________________ Создаём шаблон

End – Завешает программу

________________________________________

Создаём шаблон

Интерфейс программы. Так выглядит окно Blitz3d:  Синее текстовое поле является основным – в нём пишут программный код. 

Интерфейс программы.

Так выглядит окно Blitz3d:

Синее текстовое поле является основным – в нём пишут программный код. 

Create Executable  Для включения\отключения отладочного окна: меню Program - Debug Enabled  В правой части окна находится панель с тремя вкладками:  Funcs – отображает все функции, которые используются в проекте.  Types – отображает все типы, которые используются в проекте.  Label – отображает все метки.  " width="640"

Запуск и отладка программы:  Для запуска программы нажмите F5 или 

  Для запуска предыдущей программы нажмите F6  Для проверки ошибок нажмите F7  Для создания .exe файла нажмите: меню Program - Create Executable  Для включения\отключения отладочного окна: меню Program - Debug Enabled  В правой части окна находится панель с тремя вкладками:  Funcs – отображает все функции, которые используются в проекте.  Types – отображает все типы, которые используются в проекте.  Label – отображает все метки. 

Graphics3D 640,480,16, 2    SetBuffer BackBuffer()   cam=CreateCamera()   lit=CreateLight()    ……………………………………….     Repeat    …………………………………………  UpdateWorld   RenderWorld   Flip   Until KeyHit(1)    End

Graphics3D 640,480,16, 2   SetBuffer BackBuffer()  cam=CreateCamera()  lit=CreateLight()  ……………………………………….   Repeat  ………………………………………… UpdateWorld  RenderWorld  Flip  Until KeyHit(1)  End

Нарисуем КУБ Graphics3D 800,600,32,2 SetBuffer BackBuffer() camera=CreateCamera()  PositionEntity camera,0,2,-9  light=CreateLight()  cub=CreateCube()   RotateEntity light, 45 , 90 , 45   While Not KeyHit(1)=1 RenderWorld() Flip() Wend End камера Позиция камеры свет Ставим куб Поворот куба Пока не нажата ESC

Нарисуем КУБ

Graphics3D 800,600,32,2

SetBuffer BackBuffer()

camera=CreateCamera()

PositionEntity camera,0,2,-9

light=CreateLight()

cub=CreateCube()

RotateEntity light, 45 , 90 , 45

While Not KeyHit(1)=1

RenderWorld()

Flip()

Wend

End

камера

Позиция камеры

свет

Ставим куб

Поворот куба

Пока не нажата ESC

Поставим сферу.

Поставим сферу.

Graphics3D 800,600,32,2 SetBuffer BackBuffer() camera=CreateCamera() PositionEntity camera,0,2,-9 light=CreateLight()  cub=CreateCube()  sph=CreateSphere(32)  ScaleEntity sph,1,1,1 ScaleEntity cub,1,1,1 EntityAlpha cub,0.5 RotateEntity cub,45,45,45  RotateEntity light, 90,45,45  While Not KeyHit(1)=1 RenderWorld() Flip() Wend End Размер объекта Прозрачность объекта

Graphics3D 800,600,32,2

SetBuffer BackBuffer()

camera=CreateCamera()

PositionEntity camera,0,2,-9

light=CreateLight()

cub=CreateCube()

sph=CreateSphere(32)

ScaleEntity sph,1,1,1

ScaleEntity cub,1,1,1

EntityAlpha cub,0.5

RotateEntity cub,45,45,45

RotateEntity light, 90,45,45

While Not KeyHit(1)=1

RenderWorld()

Flip()

Wend

End

Размер объекта

Прозрачность объекта

ДОМА: Поставить цилиндр на куб. Используем:  CreateCylinder ()  - цилиндр   CreateCube() - куб PositionEntity cub,0,0,5 – Эта команда помещает объект в позиции и в 3D месте.  ScaleEntity cub,1,0.3,1 – Изменяет размер объекта 

ДОМА:

Поставить цилиндр на куб.

Используем:

CreateCylinder ()  - цилиндр CreateCube() - куб

PositionEntity cub,0,0,5 – Эта команда помещает объект в позиции и в 3D месте. 

ScaleEntity cub,1,0.3,1 – Изменяет размер объекта 

Поставим объект Graphics3D 640,480,16,1   SetBuffer BackBuffer()   cam=CreateCamera()   lit=CreateLight()   cub=CreateCube()    PositionEntity cub,0,0,5   ScaleEntity cub,1,0.3,1   RotateEntity cub,0,40,0   Repeat   TurnEntity cub,.6,.2,.3   TurnEntity lit,5,5,0   UpdateWorld   RenderWorld   Flip   Until KeyHit(1)   End

Поставим объект

Graphics3D 640,480,16,1  SetBuffer BackBuffer()  cam=CreateCamera()  lit=CreateLight()  cub=CreateCube()   PositionEntity cub,0,0,5  ScaleEntity cub,1,0.3,1  RotateEntity cub,0,40,0  Repeat  TurnEntity cub,.6,.2,.3  TurnEntity lit,5,5,0  UpdateWorld  RenderWorld  Flip  Until KeyHit(1)  End

Практическая работа. Изменить параметры света. Изменить размер объекта. Переместить объект вверх Переместить объект вправо. Изменить скорость вращения. Дома: 1. Установить программу  2. Создать сферу и цилиндр.

Практическая работа.

  • Изменить параметры света.
  • Изменить размер объекта.
  • Переместить объект вверх
  • Переместить объект вправо.
  • Изменить скорость вращения.

Дома: 1. Установить программу

2. Создать сферу и цилиндр.

Дома: 1. Установить программу  2. Создать полупрозрачную сферу и внутри цилиндр.

Дома: 1. Установить программу

2. Создать полупрозрачную сферу и внутри цилиндр.

-75%
Курсы повышения квалификации

Система работы с высокомотивированными и одаренными учащимися по учебному предмету

Продолжительность 72 часа
Документ: Удостоверение о повышении квалификации
4000 руб.
1000 руб.
Подробнее
Скачать разработку
Сохранить у себя:
Презентация по информатике "Теоретические основы трехмерной графики" (7.48 MB)

Комментарии 0

Чтобы добавить комментарий зарегистрируйтесь или на сайт