Git Product home page Git Product logo

bmstu-cg-cp's Introduction

Курсовая работа по компьютерной графике ИУ7.

За защиту поставили 5. Всего потратил 120 часов.

Предупреждение

В качестве темы курсовой работы я решил взять то, что никто до этого не делал. Самым тяжелым этапом курсовой работы (и практики), было объяснить преподавателю КГ алгоритм, который он никогда раньше не видел, в дальнейшем та же проблема была на защите.

Для ускорения работы, основной интерфейс был сверстан на коленке с помощью PyQt5, вся основная логика содержится в шейдерах GLSL (за это тоже могут забуллить, тк opengl не очень любят на кафедре).

В целом во время защиты похвалили за хороший ресерч, но не понравились эксперименты (слишком простые) и еще сказали, что результат нереалистичный (не согласен правда с этим, но ладно).

Если вы решите брать эту работу, то из проблем могу выделить следующее:

  1. В РПЗ есть неточности в физических терминах (проблемы перевода).
  2. Много говнокода в некоторых местах, которые писались за несколько ночей до сдачи курсовой.
  3. Неудобная камера, ее бы вообще полностью переписать.
  4. Есть баг, что если спрятать солнышко за горизонт, то облака будут неестественно белыми.
  5. Можно покрутить разные константы и добиться большей реалистичности.
  6. Окно нельзя размахнуть не просто так, я не смог подружить контекст moderngl с pyqt, поэтому при расширении экрана, контекст не расширяется (в целом проблема фиксится за пару часов, но я просто не успел)

Краткое описание

Работа написана на OpenGL + Python. Облака генерируются процедурно, на основе шумов Перлина и Ворлея, шума генерируются с помощью библиотек Python. Визуализация происходит с помощью алгоритма Ray Casting. Солнышко и атмосфера появляются за счет моделирования атмосферы. Про расчет плотности и тд можно почитать в рпз, если кратко то там численно (по методу прямоугольников) считаются всякие хитрые интегралы из физики.

изображение

bmstu-cg-cp's People

Contributors

buldakovmikhail avatar

Watchers

 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.