Giter Club home page Giter Club logo

computergraphicslabs's Introduction

Лабораторные работы по компьютерной графике

GitHub language count GitHub top language Оценка

Название проекта Вариант Описание
Lab1 8 formula
Lab2 8 Пятигранная прямая правильная призма
Lab3, Lab4, Lab5 8 Наклонный круговой цилиндр
Lab6 8 Прозрачность вершины обратно пропорциональна расстоянию от заданной точки
Lab7 8 Сегмент кривой Катмулла-Рома (Catmull-Rom)
CourseWork 8 Линейная поверхность Кунса (границы – кубические кривые Безье 3D)

Все работы выполнены на языке C# (.NET Framework, Windows Forms) с использованием библиотеки CGLabPlatform.

Курсовая работа 🎓

CourseWork demo Линейная поверхность Кунса, границы – кубические кривые Безье. Можно вводить точки вручную, а можно загрузить из файла. Также можно сохранить введённые точки в файл. Задаётся 12 точек, лежащих на границе, по часовой стрелке.

Лабораторная работа #1 📈

Lab1 demo Можно менять параметры графика, зумить, крутить, двигать мышкой. Крутится относительно реального центра картинки, при зуме меняется размер единичного отрезка. Зелёные границы помогают вписываться в размеры окна при их изменении.

Лабораторная работа #2 🎨

Lab2 demo Призма. Можно вращать и двигать мышкой. Двигается вслед за мышкой с помощью преобразования экранных координат курсора в мировые, что даёт очень хороший контроль над положением объекта. Также можно представить объект в различных проекциях.

Лабораторная работа #3 ⭐

Lab3 demo Наклонный круговой цилиндр. Реализованы две модели освещения: плоская и Гуро. Можно менять цвет материала, интенсивность фонового света и точечного источника, восприимчивость материала к фоновому и диффузному освещению, зеркальность материала, рассеянность света точечного источника, коэффициенты затухания интенсивности с увеличением расстояния. Можно двигать источник света. Блики на поверхности зависят в том числе от положения наблюдателя, которое рассчитывается, исходя из поворота объекта.

Лабораторная работа #4 📏

Lab4 demo Наклонный круговой цилиндр на этот раз на OpenGL. Можно изменять параметр аппроксимации, сдвиг оснований, вращать камеру вокруг объекта мышкой, отдалять и приближать камеру.

Лабораторная работа #5 🌟

Lab5 demo Модель освещения Фонга на GLSL. Все те же параметры, что и в третьей лабораторной, но интерполируется не цвет, как в модели Гуро, а нормали вершин, что выглядит заметно круче!

Лабораторная работа #6 💖

Lab6 demo Реализация шейдерных эффектов на GLSL:

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

Лабораторная работа #7 ✒️

Lab7 demo Сплайн Катмулла-Рома. Можно устанавливать точки ЛКМ, удалять двойным нажатием ПКМ, двигать с зажатой ЛКМ, перемещаться по холсту с зажатой ПКМ, отдаляться и приближаться колёсиком мышки. Можно менять параметры аппроксимации и натяжения. Выполнена на OpenGL.

Лицензии :shipit:

Весь мой код в этом репозитории рапространяется в соответствии с условиями лицензии MIT, но проект также использует библиотеку CGLabPlatform (лицензия Beerware), которая содержит код SharpGL (MIT).

computergraphicslabs's People

Contributors

netherquartz avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.