Skip to content

hatwhale/final-3d

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Windows Forms 3D Graphics (C++/CLI)

В проекте реализованы:

  • загрузка 3D объектов и параметров их текстурирования из файлов, процедурное построение и текстурирование моделей 3D объектов: реализована генерация платоновых тел, сферы и ее производных, тора и его производных; для платоновых тел одна и та же текстура накладывается на каждую грань, для сферы, тора и их производных текстура накладывается на весь объект;

  • сохранение матрицы вершин и текстурных вершин, списка граней и текстурных граней последней добавленной модели;

  • аффинные преобразования объектов и пространства: реализованы масштабирование, сдвиги вдоль и вращения вокруг осей посредством мыши, реализовано движение каждого объекта в отдельности; реализованы режимы волчка и карусели; режим волчка реализован посредством сдвига в начало координат, вращения и сдвига обратно в цикле; режим карусели реализован посредством вращения в цикле;

  • получение параллельной и перспективной проекций сцены: реализованы два вида проекции - параллельная и одноточечная перспективная, между которыми можно переключаться;

  • вывод каркасных моделей и сплошных объектов: реализовано переключение между двумя режимами отображения;

  • отсечение ближней и дальней плоскостями отсечения: реализовано при помощи буфера глубины;

  • удаление невидимых ребер каркасных моделей и невидимых граней: реализован как алгоритм Робертса, так и удаление посредством буфера глубины; для пересекающихся каркасных моделей новые ребра не строятся;

  • включение / выключение точечного источника света: включение источника света не влияет на каркасную модель; при выключенном источники света каждый объект равномерно закрашивается своим цветом;

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

  • методы закраски объектов - плоская, по Гуро и по Фонгу;

  • включение / выключение режима построения теней;

  • регулирование свойств материалов выбранных объектов, а также привязка различных текстур;

  • вывод на экран и сохранение буферов кадра и глубины: буфер глубины записывается при включенном тесте глубины; буфер псевдо-глубины записывается при включенном теневом тесте; при включенном режиме движения источника света и теневом тесте отображаются: вместо буфера глубины - буфер псевдо-глубины, shadow map, вместо буфера кадра - буфер псевдо-кадра с проверками на глубину, с камерой в источнике освещения и направлением в центр сцены (0, 0, 0);

About

Windows Forms 3D Graphics (C++/CLI)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages