├── strategy.md
├── Homeworks
├── 2_ImageWarping
│ ├── project
│ │ ├── src
│ │ │ └── App
│ │ │ │ ├── ImageWarper.cpp
│ │ │ │ ├── Resources
│ │ │ │ └── images
│ │ │ │ │ ├── new.jpg
│ │ │ │ │ ├── open.jpg
│ │ │ │ │ └── save.jpg
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── mainwindow.qrc
│ │ │ │ ├── main.cpp
│ │ │ │ ├── RBFWarper.h
│ │ │ │ └── mainwindow.ui
│ │ ├── include
│ │ │ └── _deps
│ │ │ │ └── README.md
│ │ ├── data
│ │ │ └── test.png
│ │ └── README.md
│ └── documents
│ │ ├── eigen_example
│ │ ├── src
│ │ │ ├── CMakeLists.txt
│ │ │ └── test
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── 00_LinearEquation
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── main.cpp
│ │ ├── include
│ │ │ └── _deps
│ │ │ │ └── README.md
│ │ └── README.md
│ │ ├── ann_example
│ │ ├── src
│ │ │ └── test
│ │ │ │ └── CMakeLists.txt
│ │ └── README.md
│ │ ├── 1_RBF.md
│ │ └── 0_IDW.md
├── 0_CppPratices
│ ├── project
│ │ ├── data
│ │ │ ├── P3.txt
│ │ │ ├── P4.txt
│ │ │ ├── P6.txt
│ │ │ ├── P1.txt
│ │ │ ├── P2.txt
│ │ │ └── P5.txt
│ │ ├── src
│ │ │ ├── CMakeLists.txt
│ │ │ ├── libraries
│ │ │ │ ├── DArray
│ │ │ │ │ └── CMakeLists.txt
│ │ │ │ ├── PolynomialList
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ └── PolynomialList.cpp
│ │ │ │ └── CMakeLists.txt
│ │ │ └── executables
│ │ │ │ ├── 7_UseDll
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── main.cpp
│ │ │ │ ├── 6_UseLib
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── main.cpp
│ │ │ │ ├── 1_BasicDArray
│ │ │ │ ├── main.cpp
│ │ │ │ └── CMakeLists.txt
│ │ │ │ ├── 3_TemplateDArray
│ │ │ │ ├── main.cpp
│ │ │ │ └── CMakeLists.txt
│ │ │ │ ├── 2_EfficientDArray
│ │ │ │ ├── main.cpp
│ │ │ │ └── CMakeLists.txt
│ │ │ │ ├── 5_map_Polynomial
│ │ │ │ ├── PolynomialList.cpp
│ │ │ │ └── CMakeLists.txt
│ │ │ │ ├── 4_list_Polynomial
│ │ │ │ ├── PolynomialList.cpp
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── main.cpp
│ │ │ │ └── CMakeLists.txt
│ │ ├── include
│ │ │ └── README.md
│ │ └── CMakeSettings.json
│ ├── samples
│ │ ├── data
│ │ │ ├── P3.txt
│ │ │ ├── P4.txt
│ │ │ ├── P6.txt
│ │ │ ├── P1.txt
│ │ │ ├── P2.txt
│ │ │ └── P5.txt
│ │ ├── src
│ │ │ ├── CMakeLists.txt
│ │ │ ├── libraries
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── DArray
│ │ │ │ │ └── CMakeLists.txt
│ │ │ │ └── PolynomialList
│ │ │ │ │ └── CMakeLists.txt
│ │ │ └── executables
│ │ │ │ ├── 7_UseDll
│ │ │ │ ├── main.cpp
│ │ │ │ └── CMakeLists.txt
│ │ │ │ ├── 1_BasicDArray
│ │ │ │ ├── main.cpp
│ │ │ │ └── CMakeLists.txt
│ │ │ │ ├── 3_TemplateDArray
│ │ │ │ ├── main.cpp
│ │ │ │ └── CMakeLists.txt
│ │ │ │ ├── 2_EfficientDArray
│ │ │ │ ├── main.cpp
│ │ │ │ └── CMakeLists.txt
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── 6_UseLib
│ │ │ │ ├── main.cpp
│ │ │ │ └── CMakeLists.txt
│ │ │ │ ├── 4_list_Polynomial
│ │ │ │ ├── main.cpp
│ │ │ │ └── CMakeLists.txt
│ │ │ │ └── 5_map_Polynomial
│ │ │ │ └── CMakeLists.txt
│ │ ├── include
│ │ │ └── README.md
│ │ └── README.md
│ └── documents
│ │ ├── 1_BasicDArray
│ │ └── C2Cpp
│ │ │ ├── bin
│ │ │ └── README.md
│ │ │ ├── src
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Array5
│ │ │ │ ├── Array.cpp
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── main.cpp
│ │ │ ├── Array
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── test.cpp
│ │ │ ├── Array0
│ │ │ │ └── CMakeLists.txt
│ │ │ ├── Array1.0
│ │ │ │ └── CMakeLists.txt
│ │ │ ├── Array1.1
│ │ │ │ └── CMakeLists.txt
│ │ │ ├── Array2
│ │ │ │ └── CMakeLists.txt
│ │ │ ├── Array3
│ │ │ │ └── CMakeLists.txt
│ │ │ └── Array4
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── main.cpp
│ │ │ │ └── Array.h
│ │ │ └── README.md
│ │ ├── 5_map_Polynomial
│ │ └── README.md
│ │ ├── README.md
│ │ └── 3_TemplateDArray
│ │ └── README.md
├── 4_MinSurfMeshPara
│ ├── project
│ │ ├── src
│ │ │ ├── Basic
│ │ │ │ ├── Sampler
│ │ │ │ │ ├── Sampler2D.cpp
│ │ │ │ │ ├── Sampler3D.cpp
│ │ │ │ │ ├── AliasMethod.cpp
│ │ │ │ │ ├── CosHsSample3D.cpp
│ │ │ │ │ └── UniformGridSampler2D.cpp
│ │ │ │ ├── ShapeMesh
│ │ │ │ │ ├── desktop.ini
│ │ │ │ │ ├── SphereMesh.cpp
│ │ │ │ │ ├── CapsuleMesh.cpp
│ │ │ │ │ └── ShapeMesh.cpp
│ │ │ │ ├── Parallel.cpp
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── Operation
│ │ │ │ │ └── OpQueue.cpp
│ │ │ │ ├── ImgPixelSet.cpp
│ │ │ │ └── Math.cpp
│ │ │ ├── App
│ │ │ │ └── UEngine
│ │ │ │ │ ├── .gitignore
│ │ │ │ │ ├── UEngine.qrc
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── UEngine.cpp
│ │ │ │ │ ├── GenScene.h
│ │ │ │ │ └── main.cpp
│ │ │ ├── Engine
│ │ │ │ ├── Intersector
│ │ │ │ │ └── Intersector.cpp
│ │ │ │ ├── RTX
│ │ │ │ │ ├── Film.h
│ │ │ │ │ ├── BVHNode.h
│ │ │ │ │ ├── BVHNode.cpp
│ │ │ │ │ ├── FilmTile.cpp
│ │ │ │ │ ├── FilmTile.h
│ │ │ │ │ ├── RTX_Renderer.cpp
│ │ │ │ │ └── Film.cpp
│ │ │ │ ├── Scene
│ │ │ │ │ ├── SObjLoader.h
│ │ │ │ │ ├── Component.cpp
│ │ │ │ │ ├── SimpleLoader.h
│ │ │ │ │ ├── CmptLight.cpp
│ │ │ │ │ └── AssimpLoader.h
│ │ │ │ ├── Viewer
│ │ │ │ │ ├── Raster.cpp
│ │ │ │ │ ├── EnvGenerator.cpp
│ │ │ │ │ ├── DLDM_Generator.cpp
│ │ │ │ │ ├── ForwardRaster.cpp
│ │ │ │ │ ├── PLDM_Generator.cpp
│ │ │ │ │ ├── SLDM_Generator.cpp
│ │ │ │ │ ├── Picker.h
│ │ │ │ │ ├── WireframeRaster.cpp
│ │ │ │ │ └── Picker.cpp
│ │ │ │ ├── MeshEdit
│ │ │ │ │ └── Simulate.cpp
│ │ │ │ ├── Primitive
│ │ │ │ │ ├── TriMesh.cpp
│ │ │ │ │ └── Sphere.cpp
│ │ │ │ ├── Filter
│ │ │ │ │ ├── FilterSinc.cpp
│ │ │ │ │ └── FilterMitchell.cpp
│ │ │ │ ├── Light
│ │ │ │ │ ├── DirectionalLight.cpp
│ │ │ │ │ ├── PointLight.cpp
│ │ │ │ │ ├── DiskLight.cpp
│ │ │ │ │ ├── SphereLight.cpp
│ │ │ │ │ ├── CapsuleLight.cpp
│ │ │ │ │ ├── SpotLight.cpp
│ │ │ │ │ └── AreaLight.cpp
│ │ │ │ ├── Material
│ │ │ │ │ ├── BSDF_Glass.cpp
│ │ │ │ │ ├── BSDF_Mirror.cpp
│ │ │ │ │ ├── BSDF.cpp
│ │ │ │ │ └── Beckmann.cpp
│ │ │ │ └── CMakeLists.txt
│ │ │ ├── UI
│ │ │ │ ├── Grid.cpp
│ │ │ │ ├── Hierarchy.cpp
│ │ │ │ └── CMakeLists.txt
│ │ │ ├── OpenGL
│ │ │ │ ├── VAO.cpp
│ │ │ │ ├── Texture.cpp
│ │ │ │ └── CMakeLists.txt
│ │ │ └── Qt
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── OpThread.cpp
│ │ ├── data
│ │ │ ├── .gitignore
│ │ │ └── shaders
│ │ │ │ ├── .gitignore
│ │ │ │ ├── README.md
│ │ │ │ ├── Common
│ │ │ │ ├── empty.fs
│ │ │ │ ├── basic.fs
│ │ │ │ ├── basic_T2.fs
│ │ │ │ ├── basic_P3.vs
│ │ │ │ ├── MVP_P3.vs
│ │ │ │ ├── basic_P2T2.vs
│ │ │ │ ├── camera.h
│ │ │ │ ├── basic_P3T2.vs
│ │ │ │ ├── postProcess.fs
│ │ │ │ ├── basic_P3N3.vs
│ │ │ │ ├── basic_P3N3_invN.vs
│ │ │ │ ├── basic_P3N3T2.vs
│ │ │ │ ├── basic_P3N3T2_invN.vs
│ │ │ │ ├── basic_P3N3T2T3.vs
│ │ │ │ └── interpolation.fs
│ │ │ │ ├── Engine
│ │ │ │ ├── DirectionalLight
│ │ │ │ │ ├── genDepth.fs
│ │ │ │ │ └── genDepth.vs
│ │ │ │ ├── Light
│ │ │ │ │ ├── AreaLight.h
│ │ │ │ │ ├── DiskLight.h
│ │ │ │ │ ├── SpotLight.h
│ │ │ │ │ ├── PointLight.h
│ │ │ │ │ ├── SphereLight.h
│ │ │ │ │ └── CapsuleLight.h
│ │ │ │ ├── PointLight
│ │ │ │ │ ├── genDepth.vs
│ │ │ │ │ ├── genDepth.fs
│ │ │ │ │ └── genDepth.gs
│ │ │ │ ├── IBL
│ │ │ │ │ ├── cubemap.vs
│ │ │ │ │ ├── prefilter.fs
│ │ │ │ │ ├── brdf.fs
│ │ │ │ │ └── irradiance_convolution.fs
│ │ │ │ ├── DeferredPipeline
│ │ │ │ │ ├── postProcess.fs
│ │ │ │ │ └── GBuffer_Emission.fs
│ │ │ │ ├── Skybox
│ │ │ │ │ ├── skybox.vs
│ │ │ │ │ └── skybox.fs
│ │ │ │ └── BRDF
│ │ │ │ │ └── Diffuse.h
│ │ │ │ └── Math
│ │ │ │ ├── line.h
│ │ │ │ ├── quat.h
│ │ │ │ ├── basic.h
│ │ │ │ ├── plane.h
│ │ │ │ ├── intersect.h
│ │ │ │ └── Segment.h
│ │ ├── include
│ │ │ ├── .gitignore
│ │ │ ├── Basic
│ │ │ │ ├── Math.h
│ │ │ │ ├── Node.h
│ │ │ │ ├── Timer.h
│ │ │ │ ├── HeapObj.h
│ │ │ │ ├── LStorage.h
│ │ │ │ ├── Op
│ │ │ │ │ ├── LambdaOp.h
│ │ │ │ │ ├── Op.h
│ │ │ │ │ └── OpQueue.h
│ │ │ │ ├── Sampler
│ │ │ │ │ ├── Sampler2D.h
│ │ │ │ │ ├── UniformGridSampler2D.h
│ │ │ │ │ ├── Sampler3D.h
│ │ │ │ │ ├── CosHsSampler3D.h
│ │ │ │ │ ├── BasicSampler.h
│ │ │ │ │ └── AliasMethod.h
│ │ │ │ ├── ImgPixelSet.h
│ │ │ │ ├── ArgManager.h
│ │ │ │ ├── ShapeMesh
│ │ │ │ │ ├── ShapeMesh.h
│ │ │ │ │ ├── PlaneMesh.h
│ │ │ │ │ ├── CubeMesh.h
│ │ │ │ │ ├── DiskMesh.h
│ │ │ │ │ ├── SphereMesh.h
│ │ │ │ │ └── CapsuleMesh.h
│ │ │ │ ├── TypeMap.h
│ │ │ │ ├── Array2D.h
│ │ │ │ └── Geometry.h
│ │ │ ├── UI
│ │ │ │ ├── Hierarchy.h
│ │ │ │ └── Setting.h
│ │ │ ├── OpenGL
│ │ │ │ └── Camera.h
│ │ │ ├── Engine
│ │ │ │ ├── Scene
│ │ │ │ │ ├── SObj.h
│ │ │ │ │ ├── AllComponents.h
│ │ │ │ │ ├── Component.h
│ │ │ │ │ ├── CmptMaterial.h
│ │ │ │ │ ├── CmptGeometry.h
│ │ │ │ │ └── CmptLight.h
│ │ │ │ ├── Light
│ │ │ │ │ ├── Light.h
│ │ │ │ │ ├── AreaLight.h
│ │ │ │ │ ├── DiskLight.h
│ │ │ │ │ ├── SpotLight.h
│ │ │ │ │ ├── PointLight.h
│ │ │ │ │ ├── SphereLight.h
│ │ │ │ │ ├── CapsuleLight.h
│ │ │ │ │ ├── DirectionalLight.h
│ │ │ │ │ └── InfiniteAreaLight.h
│ │ │ │ ├── Material
│ │ │ │ │ ├── GGX.h
│ │ │ │ │ ├── Beckmann.h
│ │ │ │ │ ├── SchlickGGX.h
│ │ │ │ │ ├── BSDF_Frostbite.h
│ │ │ │ │ ├── BSDF_MetalWorkflow.h
│ │ │ │ │ ├── MicrofacetDistribution.h
│ │ │ │ │ ├── AllBSDFs.h
│ │ │ │ │ ├── Material.h
│ │ │ │ │ └── Gooch.h
│ │ │ │ ├── Primitive
│ │ │ │ │ ├── Plane.h
│ │ │ │ │ ├── Capsule.h
│ │ │ │ │ ├── Sphere.h
│ │ │ │ │ ├── Triangle.h
│ │ │ │ │ ├── Primitive.h
│ │ │ │ │ ├── Shape.h
│ │ │ │ │ └── Disk.h
│ │ │ │ ├── Viewer
│ │ │ │ │ ├── BVHAccel.h
│ │ │ │ │ ├── Raster.h
│ │ │ │ │ ├── PathTracer.h
│ │ │ │ │ ├── RayTracer.h
│ │ │ │ │ ├── Ray.h
│ │ │ │ │ ├── WireframeRaster.h
│ │ │ │ │ └── Roamer.h
│ │ │ │ ├── MeshEdit
│ │ │ │ │ ├── Simulate.h
│ │ │ │ │ ├── Glue.h
│ │ │ │ │ └── MST.h
│ │ │ │ ├── Intersector
│ │ │ │ │ ├── ClosestIntersector.h
│ │ │ │ │ ├── VisibilityChecker.h
│ │ │ │ │ └── Intersector.h
│ │ │ │ ├── Filter
│ │ │ │ │ ├── FilterBox.h
│ │ │ │ │ ├── ImgFilter.h
│ │ │ │ │ ├── FilterTriangle.h
│ │ │ │ │ ├── FilterSinc.h
│ │ │ │ │ └── FilterMitchell.h
│ │ │ │ └── Engine.h
│ │ │ ├── _deps
│ │ │ │ └── README.md
│ │ │ └── Qt
│ │ │ │ └── OpThread.h
│ │ ├── config
│ │ │ └── ROOT_PATH.h.in
│ │ └── CMakeSettings.json
│ └── README.md
├── 1_MiniDraw
│ ├── project
│ │ ├── src
│ │ │ ├── CMakeLists.txt
│ │ │ └── App
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── minidraw.qrc
│ │ │ │ ├── Rect.h
│ │ │ │ ├── Ellipse.h
│ │ │ │ ├── Line.h
│ │ │ │ ├── Polygon.h
│ │ │ │ ├── Freehand.h
│ │ │ │ ├── Line.cpp
│ │ │ │ ├── Rect.cpp
│ │ │ │ ├── main.cpp
│ │ │ │ ├── Ellipse.cpp
│ │ │ │ ├── Freehand.cpp
│ │ │ │ ├── Polygon.cpp
│ │ │ │ ├── viewwidget.ui
│ │ │ │ ├── ShapeManager.h
│ │ │ │ └── minidraw.h
│ │ ├── README.md
│ │ └── CMakeSettings.json
│ ├── documents
│ │ ├── hello
│ │ │ ├── src
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── App
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ └── hello
│ │ │ │ │ ├── CMakeLists.txt
│ │ │ │ │ ├── main.cpp
│ │ │ │ │ ├── mainwindow.h
│ │ │ │ │ ├── mainwindow.ui
│ │ │ │ │ └── mainwindow.cpp
│ │ │ └── README.md
│ │ └── example
│ │ │ ├── src
│ │ │ ├── CMakeLists.txt
│ │ │ └── App
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── example.qrc
│ │ │ │ ├── main.cpp
│ │ │ │ ├── example.h
│ │ │ │ └── example.cpp
│ │ │ └── README.md
│ ├── hw1-minidraw-demo.avi
│ └── README.md
├── 3_PoissonImageEditing
│ ├── project
│ │ ├── include
│ │ │ └── _deps
│ │ │ │ └── README.md
│ │ ├── src
│ │ │ └── App
│ │ │ │ ├── Resources
│ │ │ │ └── images
│ │ │ │ │ ├── open.jpg
│ │ │ │ │ └── save.jpg
│ │ │ │ ├── mainwindow.qrc
│ │ │ │ ├── main.cpp
│ │ │ │ ├── Ellipse.h
│ │ │ │ ├── Line.h
│ │ │ │ ├── Rect.h
│ │ │ │ ├── Freehand.h
│ │ │ │ ├── Polygon.h
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── Line.cpp
│ │ │ │ ├── ChildWindow.cpp
│ │ │ │ ├── Ellipse.cpp
│ │ │ │ ├── Freehand.cpp
│ │ │ │ ├── ChildWindow.h
│ │ │ │ ├── Rect.cpp
│ │ │ │ ├── ShapeManager.h
│ │ │ │ └── mainwindow.ui
│ │ └── CMakeSettings.json
│ ├── documents
│ │ ├── opencv_example
│ │ │ └── src
│ │ │ │ └── test
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── Resources
│ │ │ │ └── images
│ │ │ │ │ ├── open.jpg
│ │ │ │ │ └── save.jpg
│ │ │ │ ├── mainwindow.qrc
│ │ │ │ ├── main.cpp
│ │ │ │ └── mainwindow.ui
│ │ └── ScanningLine.md
│ └── README.md
├── 7_SimulationTaichi
│ ├── project
│ │ ├── src
│ │ │ ├── app
│ │ │ │ └── CMakeLists.txt
│ │ │ └── example
│ │ │ │ ├── 03_cubes
│ │ │ │ └── CMakeLists.txt
│ │ │ │ ├── 00_mls_mpm88
│ │ │ │ └── CMakeLists.txt
│ │ │ │ ├── 01_mls_mpm88_x
│ │ │ │ └── CMakeLists.txt
│ │ │ │ ├── 02_snowball
│ │ │ │ └── CMakeLists.txt
│ │ │ │ └── 04_fountain
│ │ │ │ └── CMakeLists.txt
│ │ └── README.md
│ └── README.md
├── 8_Shader
│ ├── project
│ │ ├── src
│ │ │ ├── tool
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ └── SimpleLoader.h
│ │ │ └── app
│ │ │ │ ├── 0_displacement_normal
│ │ │ │ └── CMakeLists.txt
│ │ │ │ ├── 1_denoise
│ │ │ │ └── CMakeLists.txt
│ │ │ │ └── 2_shadow
│ │ │ │ └── CMakeLists.txt
│ │ ├── data
│ │ │ ├── shaders
│ │ │ │ ├── empty.frag
│ │ │ │ ├── p3.vert
│ │ │ │ └── p3t2n3.vert
│ │ │ └── models
│ │ │ │ └── CMakeLists.txt
│ │ └── include
│ │ │ └── _deps
│ │ │ └── CMakeLists.txt
│ └── README.md
├── 9_PathTracing
│ ├── project
│ │ ├── src
│ │ │ ├── PathTracer
│ │ │ │ └── CMakeLists.txt
│ │ │ └── UEditor
│ │ │ │ ├── CMakeLists.txt
│ │ │ │ ├── Editor.h
│ │ │ │ ├── Cmpt
│ │ │ │ ├── ArcBall.h
│ │ │ │ ├── Roamer.h
│ │ │ │ ├── PathTracerAgency.h
│ │ │ │ ├── Hierarchy.h
│ │ │ │ └── Inspector.h
│ │ │ │ └── GenScene.h
│ │ └── data
│ │ │ ├── shaders
│ │ │ ├── img.fs
│ │ │ ├── p2t2.vs
│ │ │ ├── env.vs
│ │ │ ├── p3t2.vs
│ │ │ ├── postprocess.fs
│ │ │ ├── env.fs
│ │ │ ├── light.fs
│ │ │ └── p3t2n3t3.vs
│ │ │ └── textures
│ │ │ └── CMakeLists.txt
│ └── README.md
├── 6_MassSpring
│ ├── documents
│ │ └── tetgen
│ │ │ ├── data
│ │ │ ├── cube.stl
│ │ │ └── cube.poly
│ │ │ ├── src
│ │ │ ├── TetGene
│ │ │ │ ├── Tet_generate.cpp
│ │ │ │ ├── main.cpp
│ │ │ │ ├── Tet_generate.h
│ │ │ │ ├── globalFunctions.h
│ │ │ │ └── CMakeLists.txt
│ │ │ └── CMakeLists.txt
│ │ │ └── README.md
│ ├── README.md
│ └── project
│ │ └── README.md
└── 5_ARAP
│ └── README.md
├── Reports
├── hw6-demo.avi
├── hw7-taichi-demo.mp4
├── hw1-minidraw-demo.avi
└── assets
│ ├── 1583098161615.png
│ ├── 1583098210666.png
│ ├── 1583098272933.png
│ ├── 1583699140233.png
│ ├── 1583700528440.png
│ ├── 1583700762855.png
│ ├── 1583700774519.png
│ ├── 1583700865694.png
│ ├── 1583704170672.png
│ ├── 1584284532305.png
│ ├── 1584300546008.png
│ ├── 1584300591475.png
│ ├── 1584300649657.png
│ ├── 1584300677296.png
│ ├── 1584300793632.png
│ ├── 1584300843377.png
│ ├── hw1-class-diagram.png
│ ├── NAR]A@_D_5XJIRE2WIA9H54.png
│ ├── image-20200323015637652.png
│ ├── image-20200327011756903.png
│ ├── image-20200327012117541.png
│ ├── image-20200327012132998.png
│ ├── image-20200327230346905.png
│ ├── image-20200328020952204.png
│ ├── image-20200328021706013.png
│ ├── image-20200406042730673.png
│ └── image-20200406044430748.png
├── .gitignore
└── Softwares
└── Qt.md
/strategy.md:
--------------------------------------------------------------------------------
1 | # 攻略
2 |
3 | 暂无内容。
4 |
--------------------------------------------------------------------------------
/Homeworks/2_ImageWarping/project/src/App/ImageWarper.cpp:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/project/data/P3.txt:
--------------------------------------------------------------------------------
1 | P 2
2 | 1 2
3 | 4 -3
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/project/data/P4.txt:
--------------------------------------------------------------------------------
1 | P 2
2 | 1 4
3 | 4 -3
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/project/data/P6.txt:
--------------------------------------------------------------------------------
1 | P 2
2 | 2 4
3 | 3 -2
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/samples/data/P3.txt:
--------------------------------------------------------------------------------
1 | P 2
2 | 1 2
3 | 4 -3
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/samples/data/P4.txt:
--------------------------------------------------------------------------------
1 | P 2
2 | 1 4
3 | 4 -3
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/samples/data/P6.txt:
--------------------------------------------------------------------------------
1 | P 2
2 | 2 4
3 | 3 -2
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/project/src/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddSubDirs()
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/samples/src/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddSubDirs()
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Basic/Sampler/Sampler2D.cpp:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Basic/Sampler/Sampler3D.cpp:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Homeworks/1_MiniDraw/project/src/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddSubDirs()
2 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/.gitignore:
--------------------------------------------------------------------------------
1 | out/
2 | *.txt
3 |
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/documents/1_BasicDArray/C2Cpp/bin/README.md:
--------------------------------------------------------------------------------
1 | 程序默认的工作路径
--------------------------------------------------------------------------------
/Homeworks/1_MiniDraw/documents/hello/src/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddSubDirs()
2 |
--------------------------------------------------------------------------------
/Homeworks/3_PoissonImageEditing/project/include/_deps/README.md:
--------------------------------------------------------------------------------
1 | # 依赖库
2 |
3 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/App/UEngine/.gitignore:
--------------------------------------------------------------------------------
1 | Resources/
2 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Engine/Intersector/Intersector.cpp:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Homeworks/1_MiniDraw/documents/example/src/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddSubDirs()
2 |
--------------------------------------------------------------------------------
/Homeworks/1_MiniDraw/documents/hello/src/App/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddSubDirs()
2 |
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/documents/1_BasicDArray/C2Cpp/src/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddSubDirs()
--------------------------------------------------------------------------------
/Homeworks/2_ImageWarping/documents/eigen_example/src/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddSubDirs()
2 |
--------------------------------------------------------------------------------
/Homeworks/2_ImageWarping/project/include/_deps/README.md:
--------------------------------------------------------------------------------
1 | # 依赖
2 |
3 | 依赖库头文件放于此处
4 |
5 |
--------------------------------------------------------------------------------
/Reports/hw6-demo.avi:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/hw6-demo.avi
--------------------------------------------------------------------------------
/Homeworks/2_ImageWarping/documents/eigen_example/src/test/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddSubDirs()
2 |
--------------------------------------------------------------------------------
/Homeworks/7_SimulationTaichi/project/src/app/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddTarget(MODE "EXE" TEST ON)
2 |
--------------------------------------------------------------------------------
/Homeworks/2_ImageWarping/documents/eigen_example/include/_deps/README.md:
--------------------------------------------------------------------------------
1 | # 依赖
2 |
3 | - Eigen
4 |
5 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/.gitignore:
--------------------------------------------------------------------------------
1 | App/RTGIwRRF/
2 | CppUtil/
3 | _DEBUG_*
4 |
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/documents/1_BasicDArray/C2Cpp/src/Array5/Array.cpp:
--------------------------------------------------------------------------------
1 |
2 | #include "Array.h"
3 |
4 |
--------------------------------------------------------------------------------
/Homeworks/1_MiniDraw/project/src/App/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddTarget(MODE "EXE" QT ON LIBS "Qt5::Widgets")
2 |
--------------------------------------------------------------------------------
/Reports/hw7-taichi-demo.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/hw7-taichi-demo.mp4
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/project/data/P1.txt:
--------------------------------------------------------------------------------
1 | P 8
2 | 0 2
3 | 5 -3
4 | 12 5
5 | 2 6
6 | 5 7
7 | 3 -4
8 | 2 9
9 | 2 2
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/samples/data/P1.txt:
--------------------------------------------------------------------------------
1 | P 8
2 | 0 2
3 | 5 -3
4 | 12 5
5 | 2 6
6 | 5 7
7 | 3 -4
8 | 2 9
9 | 2 2
--------------------------------------------------------------------------------
/Homeworks/7_SimulationTaichi/project/src/example/03_cubes/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddTarget(MODE "EXE" TEST ON)
2 |
--------------------------------------------------------------------------------
/Reports/hw1-minidraw-demo.avi:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/hw1-minidraw-demo.avi
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/project/data/P2.txt:
--------------------------------------------------------------------------------
1 | P 8
2 | 0 4
3 | 4 -3
4 | 11 4
5 | 3 -4
6 | 4 7
7 | 7 -4
8 | 4 -8
9 | 6 4
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/samples/data/P2.txt:
--------------------------------------------------------------------------------
1 | P 8
2 | 0 4
3 | 4 -3
4 | 11 4
5 | 3 -4
6 | 4 7
7 | 7 -4
8 | 4 -8
9 | 6 4
--------------------------------------------------------------------------------
/Homeworks/1_MiniDraw/documents/example/src/App/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddTarget(MODE "EXE" QT ON LIBS "Qt5::Widgets")
2 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Basic/ShapeMesh/desktop.ini:
--------------------------------------------------------------------------------
1 | [LocalizedFileNames]
2 | Cube.cpp=@Cube.cpp,0
3 |
--------------------------------------------------------------------------------
/Homeworks/7_SimulationTaichi/project/src/example/00_mls_mpm88/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddTarget(MODE "EXE" TEST ON)
2 |
--------------------------------------------------------------------------------
/Homeworks/7_SimulationTaichi/project/src/example/01_mls_mpm88_x/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddTarget(MODE "EXE" TEST ON)
2 |
--------------------------------------------------------------------------------
/Homeworks/7_SimulationTaichi/project/src/example/02_snowball/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddTarget(MODE "EXE" TEST ON)
2 |
--------------------------------------------------------------------------------
/Homeworks/7_SimulationTaichi/project/src/example/04_fountain/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddTarget(MODE "EXE" TEST ON)
2 |
--------------------------------------------------------------------------------
/Homeworks/8_Shader/project/src/tool/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddTarget(MODE "LIB" LIBS "Ubpa::UGM_core;Ubpa::UGL_core")
2 |
--------------------------------------------------------------------------------
/Reports/assets/1583098161615.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/1583098161615.png
--------------------------------------------------------------------------------
/Reports/assets/1583098210666.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/1583098210666.png
--------------------------------------------------------------------------------
/Reports/assets/1583098272933.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/1583098272933.png
--------------------------------------------------------------------------------
/Reports/assets/1583699140233.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/1583699140233.png
--------------------------------------------------------------------------------
/Reports/assets/1583700528440.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/1583700528440.png
--------------------------------------------------------------------------------
/Reports/assets/1583700762855.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/1583700762855.png
--------------------------------------------------------------------------------
/Reports/assets/1583700774519.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/1583700774519.png
--------------------------------------------------------------------------------
/Reports/assets/1583700865694.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/1583700865694.png
--------------------------------------------------------------------------------
/Reports/assets/1583704170672.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/1583704170672.png
--------------------------------------------------------------------------------
/Reports/assets/1584284532305.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/1584284532305.png
--------------------------------------------------------------------------------
/Reports/assets/1584300546008.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/1584300546008.png
--------------------------------------------------------------------------------
/Reports/assets/1584300591475.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/1584300591475.png
--------------------------------------------------------------------------------
/Reports/assets/1584300649657.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/1584300649657.png
--------------------------------------------------------------------------------
/Reports/assets/1584300677296.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/1584300677296.png
--------------------------------------------------------------------------------
/Reports/assets/1584300793632.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/1584300793632.png
--------------------------------------------------------------------------------
/Reports/assets/1584300843377.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/1584300843377.png
--------------------------------------------------------------------------------
/Homeworks/1_MiniDraw/documents/hello/src/App/hello/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddTarget(MODE "EXE" QT ON LIBS "Qt5::Widgets")
2 |
--------------------------------------------------------------------------------
/Homeworks/2_ImageWarping/documents/eigen_example/src/test/00_LinearEquation/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddTarget(MODE "EXE")
2 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/README.md:
--------------------------------------------------------------------------------
1 | 引擎内部实现了 `#include` 功能,生成的 `_DEBUG_*.h` 文件是用于 debug 的
2 |
3 |
--------------------------------------------------------------------------------
/Homeworks/8_Shader/project/data/shaders/empty.frag:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | void main()
4 | {
5 | // empty
6 | }
7 |
--------------------------------------------------------------------------------
/Homeworks/2_ImageWarping/documents/ann_example/src/test/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddTarget(MODE "EXE" LIBS "UANN_ann_static")
2 |
--------------------------------------------------------------------------------
/Homeworks/9_PathTracing/project/src/PathTracer/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddTarget(MODE "LIB"
2 | LIBS "Ubpa::UEngine_core"
3 | )
4 |
--------------------------------------------------------------------------------
/Reports/assets/hw1-class-diagram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/hw1-class-diagram.png
--------------------------------------------------------------------------------
/Homeworks/1_MiniDraw/project/src/App/minidraw.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/project/src/libraries/DArray/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_SetupTarget(MODE DLL NAME DArray SOURCES DArray.cpp LIBS "")
2 |
--------------------------------------------------------------------------------
/Homeworks/1_MiniDraw/documents/example/src/App/example.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Homeworks/1_MiniDraw/hw1-minidraw-demo.avi:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/1_MiniDraw/hw1-minidraw-demo.avi
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Common/empty.fs:
--------------------------------------------------------------------------------
1 | #version 330 core
2 | in vec4 FragPos;
3 |
4 | void main()
5 | {
6 | }
--------------------------------------------------------------------------------
/Reports/assets/NAR]A@_D_5XJIRE2WIA9H54.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/NAR]A@_D_5XJIRE2WIA9H54.png
--------------------------------------------------------------------------------
/Reports/assets/image-20200323015637652.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/image-20200323015637652.png
--------------------------------------------------------------------------------
/Reports/assets/image-20200327011756903.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/image-20200327011756903.png
--------------------------------------------------------------------------------
/Reports/assets/image-20200327012117541.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/image-20200327012117541.png
--------------------------------------------------------------------------------
/Reports/assets/image-20200327012132998.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/image-20200327012132998.png
--------------------------------------------------------------------------------
/Reports/assets/image-20200327230346905.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/image-20200327230346905.png
--------------------------------------------------------------------------------
/Reports/assets/image-20200328020952204.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/image-20200328020952204.png
--------------------------------------------------------------------------------
/Reports/assets/image-20200328021706013.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/image-20200328021706013.png
--------------------------------------------------------------------------------
/Reports/assets/image-20200406042730673.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/image-20200406042730673.png
--------------------------------------------------------------------------------
/Reports/assets/image-20200406044430748.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Reports/assets/image-20200406044430748.png
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/App/UEngine/UEngine.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/project/src/executables/7_UseDll/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_SetupTarget(MODE "EXE" NAME "7_UseDll" SOURCES "main.cpp" LIBS "DArray")
--------------------------------------------------------------------------------
/Homeworks/2_ImageWarping/project/data/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/2_ImageWarping/project/data/test.png
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/.gitignore:
--------------------------------------------------------------------------------
1 | glad/
2 | glm/
3 | KHR/
4 | GLFW/glfw3.h
5 | GLFW/glfw3native.h
6 | Eigen/
7 | HEMesh/
8 |
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/project/data/P5.txt:
--------------------------------------------------------------------------------
1 | P 10
2 | 3 -3
3 | 2 3
4 | 10 40
5 | 30 -14
6 | 24 17
7 | 71 -24
8 | 42 -18
9 | 61 24
10 | 9 -45
11 | 2 -2
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/project/src/executables/6_UseLib/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_SetupTarget(MODE "EXE" NAME "6_UseLib" SOURCES "main.cpp" LIBS "PolynomialList")
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/samples/data/P5.txt:
--------------------------------------------------------------------------------
1 | P 10
2 | 3 -3
3 | 2 3
4 | 10 40
5 | 30 -14
6 | 24 17
7 | 71 -24
8 | 42 -18
9 | 61 24
10 | 9 -45
11 | 2 -2
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Engine/DirectionalLight/genDepth.fs:
--------------------------------------------------------------------------------
1 | #version 330 core
2 | in vec4 FragPos;
3 |
4 | void main()
5 | {
6 | }
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/UI/Grid.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/UI/Grid.cpp
--------------------------------------------------------------------------------
/Homeworks/6_MassSpring/documents/tetgen/data/cube.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/6_MassSpring/documents/tetgen/data/cube.stl
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/project/src/libraries/PolynomialList/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_SetupTarget(MODE "LIB" NAME "PolynomialList" SOURCES "PolynomialList.cpp" LIBS "")
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/OpenGL/VAO.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/OpenGL/VAO.cpp
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/samples/include/README.md:
--------------------------------------------------------------------------------
1 | 本目录一般放置公用的库头文件,在代码中通过`#include <*.h>`来引用,须通过头文件路径设置才能找到。
2 |
3 | 注:如果非公用头文件,头文件可放在代码目录中,通过`#include "*.h"`来引用即可。
4 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Basic/Math.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Basic/Math.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Basic/Node.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Basic/Node.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Basic/Timer.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Basic/Timer.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/UI/Hierarchy.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/UI/Hierarchy.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Engine/RTX/Film.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/Engine/RTX/Film.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/OpenGL/Texture.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/OpenGL/Texture.cpp
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/UI/Hierarchy.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/UI/Hierarchy.cpp
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Math/line.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/data/shaders/Math/line.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Math/quat.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/data/shaders/Math/quat.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Basic/HeapObj.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Basic/HeapObj.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Basic/LStorage.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Basic/LStorage.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/OpenGL/Camera.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/OpenGL/Camera.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Engine/RTX/BVHNode.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/Engine/RTX/BVHNode.h
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/project/include/README.md:
--------------------------------------------------------------------------------
1 | `\include`目录一般放置公用的库头文件,在代码中通过`#include <*.h>`来引用,须通过头文件路径设置才能找到。
2 |
3 | 注:如果非公用头文件,头文件可放在代码目录中,通过`#include "*.h"`来引用即可。
4 |
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/project/src/libraries/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | set(TARGET_PREFIX "")
2 |
3 | Ubpa_GetDirName(DIRNAME)
4 | set(FOLDER_NAME ${DIRNAME})
5 |
6 | Ubpa_AddSubDirs()
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/samples/src/libraries/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | set(TARGET_PREFIX "")
2 |
3 | Ubpa_GetDirName(DIRNAME)
4 | set(FOLDER_NAME ${DIRNAME})
5 |
6 | Ubpa_AddSubDirs()
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Math/basic.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/data/shaders/Math/basic.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Math/plane.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/data/shaders/Math/plane.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Basic/Op/LambdaOp.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Basic/Op/LambdaOp.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Scene/SObj.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Scene/SObj.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/App/UEngine/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_GetTargetName(UI "${PROJECT_SOURCE_DIR}/src/UI")
2 |
3 | Ubpa_AddTarget(MODE "EXE" QT ON LIBS ${UI})
4 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/App/UEngine/UEngine.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/App/UEngine/UEngine.cpp
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Engine/RTX/BVHNode.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/Engine/RTX/BVHNode.cpp
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Engine/RTX/FilmTile.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/Engine/RTX/FilmTile.cpp
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Engine/RTX/FilmTile.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/Engine/RTX/FilmTile.h
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/project/src/executables/7_UseDll/main.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/0_CppPratices/project/src/executables/7_UseDll/main.cpp
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/samples/src/executables/7_UseDll/main.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/0_CppPratices/samples/src/executables/7_UseDll/main.cpp
--------------------------------------------------------------------------------
/Homeworks/2_ImageWarping/project/src/App/Resources/images/new.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/2_ImageWarping/project/src/App/Resources/images/new.jpg
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Math/intersect.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/data/shaders/Math/intersect.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Light/Light.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Light/Light.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Material/GGX.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Material/GGX.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Engine/Scene/SObjLoader.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/Engine/Scene/SObjLoader.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Engine/Viewer/Raster.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/Engine/Viewer/Raster.cpp
--------------------------------------------------------------------------------
/Homeworks/2_ImageWarping/project/src/App/Resources/images/open.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/2_ImageWarping/project/src/App/Resources/images/open.jpg
--------------------------------------------------------------------------------
/Homeworks/2_ImageWarping/project/src/App/Resources/images/save.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/2_ImageWarping/project/src/App/Resources/images/save.jpg
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Light/AreaLight.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Light/AreaLight.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Light/DiskLight.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Light/DiskLight.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Light/SpotLight.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Light/SpotLight.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Primitive/Plane.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Primitive/Plane.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Viewer/BVHAccel.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Viewer/BVHAccel.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Viewer/Raster.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Viewer/Raster.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Engine/MeshEdit/Simulate.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/Engine/MeshEdit/Simulate.cpp
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Engine/Primitive/TriMesh.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/Engine/Primitive/TriMesh.cpp
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Engine/RTX/RTX_Renderer.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/Engine/RTX/RTX_Renderer.cpp
--------------------------------------------------------------------------------
/Homeworks/6_MassSpring/documents/tetgen/src/TetGene/Tet_generate.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/6_MassSpring/documents/tetgen/src/TetGene/Tet_generate.cpp
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/project/src/executables/1_BasicDArray/main.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/0_CppPratices/project/src/executables/1_BasicDArray/main.cpp
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/samples/src/executables/1_BasicDArray/main.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/0_CppPratices/samples/src/executables/1_BasicDArray/main.cpp
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Light/PointLight.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Light/PointLight.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Light/SphereLight.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Light/SphereLight.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Material/Beckmann.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Material/Beckmann.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/MeshEdit/Simulate.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/MeshEdit/Simulate.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Primitive/Capsule.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Primitive/Capsule.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Primitive/Sphere.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Primitive/Sphere.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Viewer/PathTracer.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Viewer/PathTracer.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Viewer/RayTracer.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Viewer/RayTracer.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Basic/Sampler/AliasMethod.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/Basic/Sampler/AliasMethod.cpp
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Basic/ShapeMesh/SphereMesh.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/Basic/ShapeMesh/SphereMesh.cpp
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Engine/Viewer/EnvGenerator.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/Engine/Viewer/EnvGenerator.cpp
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/project/src/executables/3_TemplateDArray/main.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/0_CppPratices/project/src/executables/3_TemplateDArray/main.cpp
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/samples/src/executables/3_TemplateDArray/main.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/0_CppPratices/samples/src/executables/3_TemplateDArray/main.cpp
--------------------------------------------------------------------------------
/Homeworks/3_PoissonImageEditing/project/src/App/Resources/images/open.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/3_PoissonImageEditing/project/src/App/Resources/images/open.jpg
--------------------------------------------------------------------------------
/Homeworks/3_PoissonImageEditing/project/src/App/Resources/images/save.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/3_PoissonImageEditing/project/src/App/Resources/images/save.jpg
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Engine/Light/AreaLight.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/data/shaders/Engine/Light/AreaLight.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Engine/Light/DiskLight.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/data/shaders/Engine/Light/DiskLight.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Engine/Light/SpotLight.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/data/shaders/Engine/Light/SpotLight.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Light/CapsuleLight.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Light/CapsuleLight.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Material/SchlickGGX.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Material/SchlickGGX.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Primitive/Triangle.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Primitive/Triangle.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/App/UEngine/GenScene.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | namespace Ubpa {
6 | class Scene;
7 | Ptr GenScene(int n);
8 | }
9 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Basic/Sampler/CosHsSample3D.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/Basic/Sampler/CosHsSample3D.cpp
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Basic/ShapeMesh/CapsuleMesh.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/Basic/ShapeMesh/CapsuleMesh.cpp
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Engine/Viewer/DLDM_Generator.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/Engine/Viewer/DLDM_Generator.cpp
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Engine/Viewer/ForwardRaster.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/Engine/Viewer/ForwardRaster.cpp
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Engine/Viewer/PLDM_Generator.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/Engine/Viewer/PLDM_Generator.cpp
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Engine/Viewer/SLDM_Generator.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/src/Engine/Viewer/SLDM_Generator.cpp
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/project/src/executables/2_EfficientDArray/main.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/0_CppPratices/project/src/executables/2_EfficientDArray/main.cpp
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/samples/src/executables/2_EfficientDArray/main.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/0_CppPratices/samples/src/executables/2_EfficientDArray/main.cpp
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Engine/Light/PointLight.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/data/shaders/Engine/Light/PointLight.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Engine/Light/SphereLight.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/data/shaders/Engine/Light/SphereLight.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Light/DirectionalLight.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Light/DirectionalLight.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Engine/Light/CapsuleLight.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/data/shaders/Engine/Light/CapsuleLight.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Light/InfiniteAreaLight.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Light/InfiniteAreaLight.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Material/BSDF_Frostbite.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Material/BSDF_Frostbite.h
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/project/src/libraries/PolynomialList/PolynomialList.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/0_CppPratices/project/src/libraries/PolynomialList/PolynomialList.cpp
--------------------------------------------------------------------------------
/Homeworks/2_ImageWarping/project/src/App/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | set(libs "Qt5::Widgets")
2 |
3 | if(USE_ANN)
4 | list(APPEND libs "UANN_ann_static")
5 | endif()
6 |
7 | Ubpa_AddTarget(MODE "EXE" QT ON LIBS ${libs})
8 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Material/BSDF_MetalWorkflow.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Material/BSDF_MetalWorkflow.h
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/project/src/executables/5_map_Polynomial/PolynomialList.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/0_CppPratices/project/src/executables/5_map_Polynomial/PolynomialList.cpp
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Intersector/ClosestIntersector.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Intersector/ClosestIntersector.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Intersector/VisibilityChecker.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Intersector/VisibilityChecker.h
--------------------------------------------------------------------------------
/Homeworks/9_PathTracing/project/src/UEditor/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_GetTargetName(pathtracer ${PROJECT_SOURCE_DIR}/src/PathTracer)
2 |
3 | Ubpa_AddTarget(MODE "EXE"
4 | LIBS Ubpa::UEngine_core ${pathtracer}
5 | )
6 |
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/project/src/executables/4_list_Polynomial/PolynomialList.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/0_CppPratices/project/src/executables/4_list_Polynomial/PolynomialList.cpp
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Material/MicrofacetDistribution.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/4_MinSurfMeshPara/project/include/Engine/Material/MicrofacetDistribution.h
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/config/ROOT_PATH.h.in:
--------------------------------------------------------------------------------
1 | #ifndef _ROOT_PATH_H_
2 | #define _ROOT_PATH_H_
3 |
4 | #include
5 |
6 | const std::string ROOT_PATH("${CMAKE_SOURCE_DIR}/");
7 |
8 | #endif //!_ROOT_PATH_H_
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Common/basic.fs:
--------------------------------------------------------------------------------
1 | #version 330 core
2 | layout (location = 0) out vec4 FragColor;
3 |
4 | uniform vec3 color;
5 |
6 | void main()
7 | {
8 | FragColor = vec4(color, 1.0);
9 | }
--------------------------------------------------------------------------------
/Homeworks/3_PoissonImageEditing/documents/opencv_example/src/test/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_AddTarget_GDR(MODE "EXE" QT ON
2 | LIBS_GENERAL "Qt5::Widgets"
3 | LIBS_DEBUG "opencv_world420d.lib"
4 | LIBS_RELEASE "opencv_world420.lib")
5 |
--------------------------------------------------------------------------------
/Homeworks/3_PoissonImageEditing/documents/opencv_example/src/test/Resources/images/open.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/3_PoissonImageEditing/documents/opencv_example/src/test/Resources/images/open.jpg
--------------------------------------------------------------------------------
/Homeworks/3_PoissonImageEditing/documents/opencv_example/src/test/Resources/images/save.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/libreliu/USTC-CG/HEAD/Homeworks/3_PoissonImageEditing/documents/opencv_example/src/test/Resources/images/save.jpg
--------------------------------------------------------------------------------
/Homeworks/6_MassSpring/documents/tetgen/src/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | #生成 exe 就 "EXE",生成 lib 就 "LIB",生成 dll 就 "DLL"
2 | set(mode "EXE")
3 | set(TARGET_PREFIX "")
4 |
5 | Ubpa_GetDirName(DIRNAME)
6 | set(FOLDER_NAME ${DIRNAME})
7 |
8 | Ubpa_AddSubDirs()
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/project/src/executables/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | #生成 exe 就 "EXE",生成 lib 就 "LIB",生成 dll 就 "DLL"
2 | set(mode "EXE")
3 | set(TARGET_PREFIX "")
4 |
5 | Ubpa_GetDirName(DIRNAME)
6 | set(FOLDER_NAME ${DIRNAME})
7 |
8 | Ubpa_AddSubDirs()
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/samples/src/executables/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | #生成 exe 就 "EXE",生成 lib 就 "LIB",生成 dll 就 "DLL"
2 | set(mode "EXE")
3 | set(TARGET_PREFIX "")
4 |
5 | Ubpa_GetDirName(DIRNAME)
6 | set(FOLDER_NAME ${DIRNAME})
7 |
8 | Ubpa_AddSubDirs()
--------------------------------------------------------------------------------
/Homeworks/3_PoissonImageEditing/project/src/App/mainwindow.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | Resources/images/open.jpg
4 | Resources/images/save.jpg
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Engine/PointLight/genDepth.vs:
--------------------------------------------------------------------------------
1 | #version 330 core
2 | layout (location = 0) in vec3 aPos;
3 |
4 | uniform mat4 model;
5 |
6 | void main()
7 | {
8 | gl_Position = model * vec4(aPos, 1.0);
9 | }
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/_deps/README.md:
--------------------------------------------------------------------------------
1 | # 依赖
2 |
3 | - [stb_image.h](https://github.com/nothings/stb/blob/master/stb_image.h)
4 | - [stb_image_write.h](https://github.com/nothings/stb/blob/master/stb_image_write.h)
5 |
6 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Basic/Parallel.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace Ubpa;
4 |
5 | #include
6 |
7 | Parallel::Parallel()
8 | : coreNum(static_cast(omp_get_num_procs())) { }
9 |
10 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Basic/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_GlobGroupSrcs(RST sources PATHS
2 | ${CMAKE_CURRENT_SOURCE_DIR}
3 | "${PROJECT_SOURCE_DIR}/include/Basic"
4 | )
5 |
6 | Ubpa_AddTarget(MODE "LIB" SOURCES ${sources} LIBS Ubpa::UGM_core)
7 |
--------------------------------------------------------------------------------
/Homeworks/1_MiniDraw/project/src/App/Rect.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include"Shape.h"
4 | namespace DrawContext {
5 | class Rect :public Shape
6 | {
7 | public:
8 | Rect();
9 | ~Rect();
10 |
11 | void Draw(QPainter& painter);
12 | };
13 | }
14 |
--------------------------------------------------------------------------------
/Homeworks/3_PoissonImageEditing/documents/opencv_example/src/test/mainwindow.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | Resources/images/open.jpg
4 | Resources/images/save.jpg
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Homeworks/9_PathTracing/project/data/shaders/img.fs:
--------------------------------------------------------------------------------
1 | #version 330 core
2 | out vec4 FragColor;
3 |
4 | in vec2 TexCoord;
5 |
6 | // texture samplers
7 | uniform sampler2D img;
8 |
9 | void main()
10 | {
11 | FragColor = texture(img, TexCoord);
12 | }
13 |
--------------------------------------------------------------------------------
/Homeworks/1_MiniDraw/documents/example/src/App/main.cpp:
--------------------------------------------------------------------------------
1 | #include "example.h"
2 | #include
3 |
4 | int main(int argc, char *argv[])
5 | {
6 | QApplication a(argc, argv);
7 | example w;
8 | w.show();
9 | return a.exec();
10 | }
11 |
--------------------------------------------------------------------------------
/Homeworks/1_MiniDraw/project/src/App/Ellipse.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Shape.h"
4 |
5 | namespace DrawContext {
6 | class Ellipse : public Shape {
7 | public:
8 | Ellipse();
9 | ~Ellipse();
10 |
11 | void Draw(QPainter& painter);
12 | };
13 |
14 | };
--------------------------------------------------------------------------------
/Homeworks/3_PoissonImageEditing/project/src/App/main.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 | #include
3 |
4 | int main(int argc, char* argv[])
5 | {
6 | QApplication a(argc, argv);
7 | MainWindow w;
8 | w.show();
9 | return a.exec();
10 | }
11 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Common/basic_T2.fs:
--------------------------------------------------------------------------------
1 | #version 330 core
2 | out vec4 FragColor;
3 |
4 | in vec2 TexCoords;
5 |
6 | uniform sampler2D texture0;
7 |
8 | void main(){
9 | FragColor = vec4(texture(texture0, TexCoords).rgb, 1.0f);
10 | }
--------------------------------------------------------------------------------
/Homeworks/1_MiniDraw/project/src/App/Line.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Shape.h"
4 |
5 | namespace DrawContext {
6 |
7 | class Line :public Shape
8 | {
9 | public:
10 | Line();
11 | ~Line();
12 |
13 | void Draw(QPainter& painter);
14 | };
15 | }
16 |
17 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Basic/Sampler/Sampler2D.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | namespace Ubpa {
6 | class Sampler2D {
7 | public:
8 | virtual const valf2 GetSample() const = 0;
9 | virtual ~Sampler2D() {}
10 | };
11 | }
12 |
--------------------------------------------------------------------------------
/Homeworks/1_MiniDraw/documents/hello/src/App/hello/main.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 | #include
3 |
4 | int main(int argc, char *argv[])
5 | {
6 | QApplication a(argc, argv);
7 | MainWindow w;
8 | w.show();
9 |
10 | return a.exec();
11 | }
12 |
--------------------------------------------------------------------------------
/Homeworks/2_ImageWarping/project/src/App/mainwindow.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | Resources/images/new.jpg
4 | Resources/images/open.jpg
5 | Resources/images/save.jpg
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Homeworks/3_PoissonImageEditing/project/src/App/Ellipse.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Shape.h"
4 |
5 | namespace DrawContext {
6 | class Ellipse : public Shape {
7 | public:
8 | Ellipse();
9 | ~Ellipse();
10 |
11 | void Draw(QPainter& painter);
12 | };
13 |
14 | };
--------------------------------------------------------------------------------
/Homeworks/3_PoissonImageEditing/project/src/App/Line.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Shape.h"
4 |
5 | namespace DrawContext {
6 |
7 | class Line :public Shape
8 | {
9 | public:
10 | Line();
11 | ~Line();
12 |
13 | void Draw(QPainter& painter);
14 | };
15 | }
16 |
17 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Common/basic_P3.vs:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | #include "camera.h"
4 |
5 | layout (location = 0) in vec3 aPos;
6 |
7 | uniform mat4 model;
8 |
9 | void main(){
10 | gl_Position = projection * view * model * vec4(aPos,1.0);
11 | }
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Basic/Sampler/UniformGridSampler2D.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Sampler2D.h"
4 |
5 | namespace Ubpa {
6 | class UniformGridSampler2D : public Sampler2D {
7 | public:
8 | virtual const valf2 GetSample() const;
9 | };
10 | }
11 |
--------------------------------------------------------------------------------
/Homeworks/1_MiniDraw/project/src/App/Polygon.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Shape.h"
4 |
5 | namespace DrawContext {
6 |
7 | class Polygon :public Shape
8 | {
9 | public:
10 | Polygon();
11 | ~Polygon();
12 |
13 | void Draw(QPainter& painter);
14 | };
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/Homeworks/3_PoissonImageEditing/documents/opencv_example/src/test/main.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 | #include
3 |
4 | int main(int argc, char *argv[])
5 | {
6 | QApplication a(argc, argv);
7 | MainWindow w;
8 | w.show();
9 | return a.exec();
10 | }
11 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Common/MVP_P3.vs:
--------------------------------------------------------------------------------
1 | #version 330 core
2 | layout (location = 0) in vec3 aPos;
3 |
4 | uniform mat4 model;
5 | uniform mat4 view;
6 | uniform mat4 proj;
7 |
8 | void main()
9 | {
10 | gl_Position = proj * view * model * vec4(aPos, 1.0);
11 | }
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Engine/DirectionalLight/genDepth.vs:
--------------------------------------------------------------------------------
1 | #version 330 core
2 | layout (location = 0) in vec3 aPos;
3 |
4 | uniform mat4 model;
5 | uniform mat4 lightProjView;
6 |
7 | void main()
8 | {
9 | gl_Position = lightProjView * model * vec4(aPos, 1.0);
10 | }
--------------------------------------------------------------------------------
/Homeworks/8_Shader/project/data/shaders/p3.vert:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | layout (location = 0) in vec3 aPos;
4 |
5 | uniform mat4 projection;
6 | uniform mat4 view;
7 | uniform mat4 model;
8 |
9 | void main()
10 | {
11 | gl_Position = projection * view * model * vec4(aPos, 1.0);
12 | }
13 |
--------------------------------------------------------------------------------
/Homeworks/8_Shader/project/data/models/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_DownloadFile(
2 | https://ubpa.github.io/USTC_CG_Data/Homeworks/08_Shader/models/spot_triangulated_good.obj
3 | ${CMAKE_CURRENT_SOURCE_DIR}/spot_triangulated_good.obj
4 | SHA256 6B24ADB11D65CF3658FA76BC1D589525E51AB997E442859EAC7CA3211B8E0357
5 | )
6 |
--------------------------------------------------------------------------------
/Homeworks/9_PathTracing/project/data/shaders/p2t2.vs:
--------------------------------------------------------------------------------
1 | #version 330 core
2 | layout (location = 0) in vec2 aPos;
3 | layout (location = 1) in vec2 aTexCoord;
4 |
5 | out vec2 TexCoord;
6 |
7 | void main()
8 | {
9 | TexCoord = aTexCoord;
10 | gl_Position = vec4(aPos.x, aPos.y, 0.0, 1.0);
11 | }
12 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Common/basic_P2T2.vs:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | layout (location = 0) in vec2 aPos;
4 | layout (location = 1) in vec2 aTexCoords;
5 |
6 | out vec2 TexCoords;
7 |
8 | void main()
9 | {
10 | TexCoords = aTexCoords;
11 | gl_Position = vec4(aPos, 0.0, 1.0);
12 | }
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Qt/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_GlobGroupSrcs(RST sources PATHS
2 | ${CMAKE_CURRENT_SOURCE_DIR}
3 | "${PROJECT_SOURCE_DIR}/include/Qt"
4 | )
5 | Ubpa_GetTargetName(Basic "${PROJECT_SOURCE_DIR}/src/Basic")
6 | Ubpa_AddTarget(MODE "LIB" QT ON SOURCES ${sources} LIBS "${Basic};Qt5::Widgets")
7 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Basic/Sampler/Sampler3D.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | namespace Ubpa {
6 | class Sampler3D {
7 | public:
8 | virtual const valf3 GetSample() = 0;
9 | virtual const valf3 GetSample(float& pd) = 0;
10 | virtual ~Sampler3D() {}
11 | };
12 | }
13 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Engine/Scene/Component.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include
4 |
5 | using namespace Ubpa;
6 |
7 | void Component::Init_AfterGenPtr() {
8 | auto sobj = GetSObj();
9 | if (sobj)
10 | sobj->AttachComponent(This());
11 | }
12 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Engine/Scene/SimpleLoader.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | #include
6 |
7 | namespace Ubpa {
8 | class SObj;
9 | namespace SimpleLoader {
10 | Ptr LoadObj(const std::string& path);
11 | Ptr LoadTet(const std::string& path);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Engine/IBL/cubemap.vs:
--------------------------------------------------------------------------------
1 | #version 330 core
2 | layout (location = 0) in vec3 aPos;
3 |
4 | out vec3 WorldPos;
5 |
6 | uniform mat4 projection;
7 | uniform mat4 view;
8 |
9 | void main()
10 | {
11 | WorldPos = aPos;
12 | gl_Position = projection * view * vec4(WorldPos, 1.0);
13 | }
--------------------------------------------------------------------------------
/Homeworks/3_PoissonImageEditing/project/src/App/Rect.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include"Shape.h"
4 | namespace DrawContext {
5 | class Rect :public Shape
6 | {
7 | public:
8 | Rect();
9 | ~Rect();
10 |
11 | void Draw(QPainter& painter);
12 | virtual const Eigen::Matrix &getMaskMatrix() override;
13 | };
14 | }
15 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Common/camera.h:
--------------------------------------------------------------------------------
1 | // 160
2 | layout (std140) uniform Camera{
3 | mat4 view; // 64 0 64
4 | mat4 projection; // 64 64 64
5 | vec3 viewPos; // 12 128 144
6 | float nearPlane; // 4 144 148
7 | float farPlane; // 4 148 152
8 | float fov; // 4 152 156
9 | float ar; // 4 156 160
10 | };
11 |
--------------------------------------------------------------------------------
/Homeworks/1_MiniDraw/project/src/App/Freehand.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Shape.h"
4 |
5 | namespace DrawContext {
6 |
7 | class Freehand :public Shape
8 | {
9 | public:
10 | Freehand();
11 | ~Freehand();
12 |
13 |
14 | void Draw(QPainter& painter) override;
15 | private:
16 | std::vector path;
17 | };
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/OpenGL/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_GlobGroupSrcs(RST sources PATHS
2 | ${CMAKE_CURRENT_SOURCE_DIR}
3 | "${PROJECT_SOURCE_DIR}/include/OpenGL"
4 | )
5 | add_definitions(-DUSE_QT_OPENGL_API)
6 | Ubpa_GetTargetName(Basic "${PROJECT_SOURCE_DIR}/src/Basic")
7 | Ubpa_AddTarget(MODE "LIB" SOURCES ${sources} LIBS ${Basic} Qt5::Widgets)
8 |
--------------------------------------------------------------------------------
/Homeworks/3_PoissonImageEditing/project/src/App/Freehand.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Shape.h"
4 |
5 | namespace DrawContext {
6 |
7 | class Freehand :public Shape
8 | {
9 | public:
10 | Freehand();
11 | ~Freehand();
12 |
13 |
14 | void Draw(QPainter& painter) override;
15 | private:
16 | std::vector path;
17 | };
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/Homeworks/3_PoissonImageEditing/project/src/App/Polygon.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Shape.h"
4 |
5 | namespace DrawContext {
6 |
7 | class Polygon :public Shape
8 | {
9 | public:
10 | Polygon();
11 | ~Polygon();
12 |
13 | void Draw(QPainter& painter);
14 | const Eigen::Matrix &getMaskMatrix() override;
15 | };
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Scene/AllComponents.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 | #include
5 | #include
6 | #include
7 | #include
8 | #include
9 |
10 |
--------------------------------------------------------------------------------
/Homeworks/8_Shader/project/src/app/0_displacement_normal/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_GetTargetName(tool "${PROJECT_SOURCE_DIR}/src/tool")
2 | set(src
3 | ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
4 | ${PROJECT_SOURCE_DIR}/data/shaders/dn.vert
5 | ${PROJECT_SOURCE_DIR}/data/shaders/light_dn.frag)
6 | Ubpa_AddTarget(MODE "EXE" SOURCES ${src} LIBS "Ubpa::UGL_core;glfw;${tool}")
7 |
--------------------------------------------------------------------------------
/Homeworks/8_Shader/project/src/app/1_denoise/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | set(src
2 | ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
3 | ${PROJECT_SOURCE_DIR}/data/shaders/p3t2n3_denoise.vert
4 | ${PROJECT_SOURCE_DIR}/data/shaders/light.frag)
5 |
6 | Ubpa_GetTargetName(tool "${PROJECT_SOURCE_DIR}/src/tool")
7 | Ubpa_AddTarget(MODE "EXE" SOURCES ${src} LIBS "Ubpa::UGL_core;glfw;${tool}")
8 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Intersector/Intersector.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | namespace Ubpa {
6 | class SObj;
7 |
8 | class Sphere;
9 | class Plane;
10 | class Triangle;
11 | class TriMesh;
12 | class BVHAccel;
13 | class Disk;
14 | class Capsule;
15 |
16 | class Intersector { };
17 | }
18 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Basic/Sampler/UniformGridSampler2D.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include
4 |
5 | using namespace Ubpa;
6 |
7 | const valf2 UniformGridSampler2D::GetSample() const {
8 |
9 | float x = Math::Rand_F();
10 | float y = Math::Rand_F();
11 |
12 | return valf2(x, y);
13 | }
14 |
--------------------------------------------------------------------------------
/Homeworks/1_MiniDraw/project/src/App/Line.cpp:
--------------------------------------------------------------------------------
1 | #include "Line.h"
2 |
3 | using namespace DrawContext;
4 |
5 | Line::Line()
6 | {
7 | this->setAttr("point-required", 2);
8 | }
9 |
10 | Line::~Line()
11 | {
12 | }
13 |
14 | void Line::Draw(QPainter& painter)
15 | {
16 | if (ctrl_points.size() == 2) {
17 | painter.drawLine(ctrl_points[0], ctrl_points[1]);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Homeworks/1_MiniDraw/project/src/App/Rect.cpp:
--------------------------------------------------------------------------------
1 | #include "Rect.h"
2 |
3 | using namespace DrawContext;
4 |
5 | Rect::Rect()
6 | {
7 | this->setAttr("point-required", 2);
8 | }
9 |
10 | Rect::~Rect()
11 | {
12 | }
13 |
14 | void Rect::Draw(QPainter& painter)
15 | {
16 | if (ctrl_points.size() == 2) {
17 | painter.drawRect(QRect(ctrl_points[0], ctrl_points[1]));
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Homeworks/3_PoissonImageEditing/project/src/App/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | if(MSVC)
2 | Ubpa_AddTarget_GDR(MODE "EXE" QT ON
3 | LIBS_GENERAL "Qt5::Widgets"
4 | LIBS_DEBUG "opencv_world420d.lib"
5 | LIBS_RELEASE "opencv_world420.lib")
6 | else()
7 | Ubpa_AddTarget_GDR(MODE "EXE" QT ON
8 | LIBS_GENERAL "Qt5::Widgets"
9 | LIBS_DEBUG ${OpenCV_LIBS}
10 | LIBS_RELEASE ${OpenCV_LIBS})
11 |
12 | endif()
--------------------------------------------------------------------------------
/Homeworks/3_PoissonImageEditing/project/src/App/Line.cpp:
--------------------------------------------------------------------------------
1 | #include "Line.h"
2 |
3 | using namespace DrawContext;
4 |
5 | Line::Line()
6 | {
7 | this->setAttr("point-required", 2);
8 | }
9 |
10 | Line::~Line()
11 | {
12 | }
13 |
14 | void Line::Draw(QPainter& painter)
15 | {
16 | if (ctrl_points.size() == 2) {
17 | painter.drawLine(ctrl_points[0], ctrl_points[1]);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Homeworks/9_PathTracing/project/data/shaders/env.vs:
--------------------------------------------------------------------------------
1 | #version 330 core
2 | layout (location = 0) in vec3 aPos;
3 |
4 | out vec3 TexCoord;
5 |
6 | uniform mat4 view;
7 | uniform mat4 projection;
8 |
9 | void main()
10 | {
11 | TexCoord = aPos;
12 | mat4 viewNoT = mat4(mat3(view));
13 | vec4 pos = projection * viewNoT * vec4(aPos, 1.0);
14 | gl_Position = pos.xyww;
15 | }
16 |
--------------------------------------------------------------------------------
/Homeworks/9_PathTracing/project/data/textures/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_DownloadFile(
2 | https://cdn.jsdelivr.net/gh/Ubpa/USTC_CG_data@master/Homeworks/09_PathTracing/newport_loft.hdr
3 | # https://ubpa.github.io/USTC_CG_Data/Homeworks/09_PathTracing/newport_loft.hdr
4 | ${CMAKE_CURRENT_LIST_DIR}/newport_loft.hdr
5 | SHA256 F521688AB09B3E748341921D0C8C114D1256E6CA9E94C6E6783B9952B0042C44
6 | )
7 |
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/documents/1_BasicDArray/C2Cpp/src/Array/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_GetDirName(DIRNAME)
2 | set(targetName "${DIRNAME}")
3 | #多个源文件用 ';' 分隔
4 | #如:set(sources "main.cpp;src_2.cpp;help.h")
5 | file(GLOB sources
6 | "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp"
7 | "${CMAKE_CURRENT_SOURCE_DIR}/*.h"
8 | )
9 | Ubpa_SetupTarget(MODE "EXE" NAME ${targetName} SOURCES ${sources} LIBS "")
10 |
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/documents/1_BasicDArray/C2Cpp/src/Array0/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_GetDirName(DIRNAME)
2 | set(targetName "${DIRNAME}")
3 | #多个源文件用 ';' 分隔
4 | #如:set(sources "main.cpp;src_2.cpp;help.h")
5 | file(GLOB sources
6 | "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp"
7 | "${CMAKE_CURRENT_SOURCE_DIR}/*.h"
8 | )
9 | Ubpa_SetupTarget(MODE "EXE" NAME ${targetName} SOURCES ${sources} LIBS "")
10 |
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/documents/1_BasicDArray/C2Cpp/src/Array1.0/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_GetDirName(DIRNAME)
2 | set(targetName "${DIRNAME}")
3 | #多个源文件用 ';' 分隔
4 | #如:set(sources "main.cpp;src_2.cpp;help.h")
5 | file(GLOB sources
6 | "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp"
7 | "${CMAKE_CURRENT_SOURCE_DIR}/*.h"
8 | )
9 | Ubpa_SetupTarget(MODE "EXE" NAME ${targetName} SOURCES ${sources} LIBS "")
10 |
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/documents/1_BasicDArray/C2Cpp/src/Array1.1/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_GetDirName(DIRNAME)
2 | set(targetName "${DIRNAME}")
3 | #多个源文件用 ';' 分隔
4 | #如:set(sources "main.cpp;src_2.cpp;help.h")
5 | file(GLOB sources
6 | "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp"
7 | "${CMAKE_CURRENT_SOURCE_DIR}/*.h"
8 | )
9 | Ubpa_SetupTarget(MODE "EXE" NAME ${targetName} SOURCES ${sources} LIBS "")
10 |
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/documents/1_BasicDArray/C2Cpp/src/Array2/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_GetDirName(DIRNAME)
2 | set(targetName "${DIRNAME}")
3 | #多个源文件用 ';' 分隔
4 | #如:set(sources "main.cpp;src_2.cpp;help.h")
5 | file(GLOB sources
6 | "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp"
7 | "${CMAKE_CURRENT_SOURCE_DIR}/*.h"
8 | )
9 | Ubpa_SetupTarget(MODE "EXE" NAME ${targetName} SOURCES ${sources} LIBS "")
10 |
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/documents/1_BasicDArray/C2Cpp/src/Array3/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_GetDirName(DIRNAME)
2 | set(targetName "${DIRNAME}")
3 | #多个源文件用 ';' 分隔
4 | #如:set(sources "main.cpp;src_2.cpp;help.h")
5 | file(GLOB sources
6 | "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp"
7 | "${CMAKE_CURRENT_SOURCE_DIR}/*.h"
8 | )
9 | Ubpa_SetupTarget(MODE "EXE" NAME ${targetName} SOURCES ${sources} LIBS "")
10 |
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/documents/1_BasicDArray/C2Cpp/src/Array4/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_GetDirName(DIRNAME)
2 | set(targetName "${DIRNAME}")
3 | #多个源文件用 ';' 分隔
4 | #如:set(sources "main.cpp;src_2.cpp;help.h")
5 | file(GLOB sources
6 | "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp"
7 | "${CMAKE_CURRENT_SOURCE_DIR}/*.h"
8 | )
9 | Ubpa_SetupTarget(MODE "EXE" NAME ${targetName} SOURCES ${sources} LIBS "")
10 |
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/documents/1_BasicDArray/C2Cpp/src/Array4/main.cpp:
--------------------------------------------------------------------------------
1 |
2 | #include
3 |
4 | #include "Array.h"
5 |
6 | void main()
7 | {
8 | DArray pa;
9 |
10 | //pa.InitArray( );
11 |
12 | pa.SetArraySize( 3 );
13 | pa.SetValue( 0, 1.0 );
14 | pa.SetValue( 1, 2.0 );
15 | pa.SetValue( 2, 3.0 );
16 |
17 | pa.PrintArray( );
18 |
19 | //pa.FreeArray( );
20 | }
21 |
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/documents/1_BasicDArray/C2Cpp/src/Array5/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | Ubpa_GetDirName(DIRNAME)
2 | set(targetName "${DIRNAME}")
3 | #多个源文件用 ';' 分隔
4 | #如:set(sources "main.cpp;src_2.cpp;help.h")
5 | file(GLOB sources
6 | "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp"
7 | "${CMAKE_CURRENT_SOURCE_DIR}/*.h"
8 | )
9 | Ubpa_SetupTarget(MODE "EXE" NAME ${targetName} SOURCES ${sources} LIBS "")
10 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Common/basic_P3T2.vs:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | #include "camera.h"
4 |
5 | layout (location = 0) in vec3 aPos;
6 | layout (location = 1) in vec2 aTexCoords;
7 |
8 | uniform mat4 model;
9 |
10 | out vec2 TexCoords;
11 |
12 | void main(){
13 | TexCoords = aTexCoords;
14 |
15 | gl_Position = projection * view * model * vec4(aPos,1.0);
16 | }
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Engine/Filter/FilterSinc.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include
4 |
5 | using namespace Ubpa;
6 |
7 | float FilterSinc::WindowSinc(float x, float radius) const {
8 | x = std::abs(x);
9 | if (x > radius)
10 | return 0;
11 | const auto lanczos = Math::Sinc(x / tau);
12 | return Math::Sinc(x) * lanczos;
13 | }
14 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Basic/Op/Op.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | namespace Ubpa {
6 | class Op : public HeapObj {
7 | protected:
8 | Op(bool isHold = true) :isHold(isHold) { }
9 | virtual ~Op() = default;
10 |
11 | public:
12 | void operator()() { Run(); }
13 | virtual void Run() = 0;
14 |
15 | public:
16 | bool isHold;
17 | };
18 | }
19 |
--------------------------------------------------------------------------------
/Homeworks/2_ImageWarping/project/src/App/main.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 | #include
3 |
4 | int main(int argc, char *argv[])
5 | {
6 |
7 | #if defined(_WIN32) || defined(_WIN64)
8 | _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF);
9 | #endif
10 |
11 | QApplication a(argc, argv);
12 | MainWindow w;
13 | w.show();
14 | return a.exec();
15 | }
16 |
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/documents/1_BasicDArray/C2Cpp/src/Array4/Array.h:
--------------------------------------------------------------------------------
1 |
2 | class DArray
3 | {
4 | private:
5 | int n; // the size of the array
6 | double *pData; // the data of the array
7 |
8 | public:
9 | DArray();
10 | ~DArray();
11 | int InitArray( );
12 | int SetArraySize( int size );
13 | int FreeArray( );
14 | int SetValue( int k, double value );
15 | int PrintArray( );
16 | };
17 |
18 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Basic/Sampler/CosHsSampler3D.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Sampler3D.h"
4 |
5 | namespace Ubpa {
6 | class CosHsSampler3D : public Sampler3D {
7 | public:
8 | virtual const valf3 GetSample();
9 |
10 | // Also returns the probability density at the sample point for use in importance sampling.
11 | virtual const valf3 GetSample(float& pd);
12 | };
13 | }
14 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Engine/Light/DirectionalLight.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | using namespace Ubpa;
4 |
5 | using namespace std;
6 |
7 | const rgbf DirectionalLight::Sample_L(const pointf3 & p, normalf & wi, float & distToLight, float & PD) const {
8 | cout << "WARNING::DirectionalLight:" << endl
9 | << "\t" << "not implemented" << endl;
10 | return 0.f;
11 | }
12 |
--------------------------------------------------------------------------------
/Homeworks/1_MiniDraw/project/src/App/main.cpp:
--------------------------------------------------------------------------------
1 | #include "minidraw.h"
2 | #include
3 |
4 | int main(int argc, char* argv[])
5 | {
6 |
7 | #if defined(_WIN32) || defined(_WIN64)
8 | _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF);
9 | #endif
10 |
11 | QApplication a(argc, argv);
12 | MiniDraw w;
13 | w.show();
14 | int ret = a.exec();
15 | return ret;
16 | }
17 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Primitive/Primitive.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "Shape.h"
4 |
5 | namespace Ubpa {
6 | // renderable
7 | class Primitive : public Shape {
8 | protected:
9 | Primitive() = default;
10 | virtual ~Primitive() = default;
11 |
12 | public:
13 | virtual const Ptr GetPrimitive() override {
14 | return This();
15 | }
16 | };
17 | }
18 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/UI/Setting.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | namespace Ubpa {
6 | class Setting : public Grid {
7 | public:
8 | using Grid::Grid;
9 |
10 | protected:
11 | virtual ~Setting() = default;
12 |
13 | public:
14 | static Ptr GetInstance() {
15 | static auto instance = Ubpa::New();
16 | return instance;
17 | }
18 | };
19 | }
20 |
--------------------------------------------------------------------------------
/Homeworks/9_PathTracing/project/data/shaders/p3t2.vs:
--------------------------------------------------------------------------------
1 | #version 330 core
2 | layout (location = 0) in vec3 aPos;
3 | layout (location = 1) in vec2 aTexCoord;
4 |
5 | out vec2 TexCoord;
6 |
7 | uniform mat4 model;
8 | uniform mat4 view;
9 | uniform mat4 projection;
10 |
11 | void main()
12 | {
13 | gl_Position = projection * view * model * vec4(aPos, 1.0f);
14 | TexCoord = vec2(aTexCoord.x, 1.0 - aTexCoord.y);
15 | }
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Engine/DeferredPipeline/postProcess.fs:
--------------------------------------------------------------------------------
1 | #version 330 core
2 | out vec3 FragColor;
3 |
4 | in vec2 TexCoords;
5 |
6 | uniform sampler2D img;
7 |
8 | void main(){
9 | vec3 color = texture(img, TexCoords).xyz;
10 |
11 | // HDR tonemapping
12 | color = color / (vec3(1.0)+color);
13 |
14 | // gamma
15 | color = pow(color, vec3(1.0/2.2));
16 |
17 | FragColor = color;
18 | }
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/documents/1_BasicDArray/C2Cpp/README.md:
--------------------------------------------------------------------------------
1 | # C to C++
2 |
3 | 此为 [1_BasicDArray](../) 和 [3_TemplateDArray](../../3_TemplateDArray/) 中的相关项目
4 |
5 | 包含七个子项目
6 |
7 | - Array:固定长度数组
8 | - Array0:动态数组功能实现
9 | - Array 1.0:用 `struct` 打包 `p` 和 `n`,引用形式
10 | - Array 1.1:用 `struct` 打包 `p` 和 `n`,指针形式
11 | - Array 2:函数放到 `struct` 中
12 | - Array 3:改用 `class`
13 | - Array 4:头文件和实现文件
14 | - Array 5:模板 `template`
15 |
16 |
--------------------------------------------------------------------------------
/Homeworks/1_MiniDraw/project/src/App/Ellipse.cpp:
--------------------------------------------------------------------------------
1 | #include "Ellipse.h"
2 | #include
3 |
4 | using namespace DrawContext;
5 |
6 | Ellipse::Ellipse()
7 | {
8 | this->setAttr("point-required", 2);
9 | }
10 |
11 |
12 | Ellipse::~Ellipse()
13 | {
14 | }
15 |
16 | void Ellipse::Draw(QPainter& painter)
17 | {
18 | if (ctrl_points.size() == 2) {
19 | painter.drawEllipse(QRect(ctrl_points[0], ctrl_points[1]));
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Homeworks/3_PoissonImageEditing/project/src/App/ChildWindow.cpp:
--------------------------------------------------------------------------------
1 | #include "ChildWindow.h"
2 | #include "ImageWidget.h"
3 |
4 |
5 | ChildWindow::ChildWindow(void)
6 | {
7 | imagewidget_ = new ImageWidget(this);
8 | setCentralWidget(imagewidget_);
9 | }
10 |
11 |
12 | ChildWindow::~ChildWindow(void)
13 | {
14 | }
15 |
16 | bool ChildWindow::LoadFile(QString filename)
17 | {
18 | imagewidget_->Open(filename);
19 | return true;
20 | }
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Basic/ImgPixelSet.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 | #include
5 |
6 | namespace Ubpa {
7 | class ImgPixelSet : public RandSet {
8 | public:
9 | ImgPixelSet();
10 | ImgPixelSet(size_t width, size_t height);
11 |
12 | using RandSet::RandPick;
13 | std::vector RandPick(size_t n);
14 | std::vector PickAll();
15 | };
16 | }
17 |
--------------------------------------------------------------------------------
/Homeworks/6_MassSpring/documents/tetgen/src/TetGene/main.cpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "Tet_generate.h"
3 | #include "tetgen.h"
4 |
5 | #include
6 |
7 | using namespace std;
8 |
9 | int main()
10 | {
11 | tetgenio *a;
12 | tetgenio *c;
13 | CTet_generate b;
14 | a = b.poly_in("../data/cube.poly");
15 | c = b.tet_out(a);
16 | cout << c->numberofpoints << endl;
17 | b.tet_output(c, "../data/2.tet");
18 | return 0;
19 | }
--------------------------------------------------------------------------------
/Homeworks/3_PoissonImageEditing/project/src/App/Ellipse.cpp:
--------------------------------------------------------------------------------
1 | #include "Ellipse.h"
2 | #include
3 |
4 | using namespace DrawContext;
5 |
6 | Ellipse::Ellipse()
7 | {
8 | this->setAttr("point-required", 2);
9 | }
10 |
11 |
12 | Ellipse::~Ellipse()
13 | {
14 | }
15 |
16 | void Ellipse::Draw(QPainter& painter)
17 | {
18 | if (ctrl_points.size() == 2) {
19 | painter.drawEllipse(QRect(ctrl_points[0], ctrl_points[1]));
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Homeworks/6_MassSpring/documents/tetgen/src/TetGene/Tet_generate.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "tetgen.h"
3 | #include "Vec.h"
4 |
5 | using trimesh::vec;
6 |
7 | class CTet_generate
8 | {
9 | public:
10 | CTet_generate(void);
11 | ~CTet_generate(void);
12 | tetgenio* poly_in(char* filename);
13 | tetgenio* tet_out(tetgenio* in);
14 | void tet_output(tetgenio *a, char* filename);
15 | //vec get_normal(tetgenio* tet, int index);
16 | };
17 |
18 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Primitive/Shape.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | #include
6 |
7 | namespace Ubpa {
8 | class Primitive;
9 |
10 | class Shape : public HeapObj {
11 | protected:
12 | Shape() = default;
13 | virtual ~Shape() = default;
14 |
15 | public:
16 | virtual const bboxf3 GetBBox() const = 0;
17 | virtual const Ptr GetPrimitive() = 0;
18 | };
19 | }
20 |
--------------------------------------------------------------------------------
/Homeworks/9_PathTracing/project/src/UEditor/Editor.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | namespace Ubpa {
6 | class Editor {
7 | public:
8 | Read scene;
9 |
10 | static Editor& Instance() noexcept {
11 | static Editor instance;
12 | return instance;
13 | }
14 |
15 | void SetCamera(SObj* cameraobj);
16 |
17 | static void OnRegister();
18 |
19 | private:
20 | Editor();
21 | ~Editor();
22 | };
23 | }
24 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/data/shaders/Engine/IBL/prefilter.fs:
--------------------------------------------------------------------------------
1 | #version 330 core
2 |
3 | #include "../../Math/sample.h"
4 | #include "../BRDF/FDG.h"
5 |
6 | out vec4 FragColor;
7 | in vec3 WorldPos;
8 |
9 | uniform samplerCube environmentMap;
10 | uniform float roughness;
11 | uniform float resolution;
12 |
13 | void main()
14 | {
15 | // TODO
16 | vec3 prefilteredColor = vec3(1,1,1);
17 |
18 | FragColor = vec4(prefilteredColor, 1.0);
19 | }
20 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Material/AllBSDFs.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 | #include
5 | #include
6 | #include
7 | #include
8 | #include
9 | #include
10 | #include
11 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Engine/Material/Material.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 | #include
5 | #include
6 | #include
7 | #include
8 | #include
9 | #include
10 |
11 | namespace Ubpa {
12 | class Image;
13 |
14 | class Material : public HeapObj {
15 | protected:
16 | Material() = default;
17 | virtual ~Material() = default;
18 | };
19 | }
20 |
--------------------------------------------------------------------------------
/Homeworks/8_Shader/project/src/app/2_shadow/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | set(src
2 | ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
3 | ${PROJECT_SOURCE_DIR}/data/shaders/p3t2n3.vert
4 | ${PROJECT_SOURCE_DIR}/data/shaders/p3.vert
5 | ${PROJECT_SOURCE_DIR}/data/shaders/light_shadow.frag
6 | ${PROJECT_SOURCE_DIR}/data/shaders/empty.frag
7 | )
8 |
9 | Ubpa_GetTargetName(tool "${PROJECT_SOURCE_DIR}/src/tool")
10 | Ubpa_AddTarget(MODE "EXE" SOURCES ${src} LIBS "Ubpa::UGL_core;glfw;${tool}")
11 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | resources/
2 | build/
3 | lib/
4 | students/
5 | .vs/
6 | _deps/
7 |
8 | *Config.h
9 |
10 | CMakeSettings.json
11 |
12 | *.obj
13 | *.uscene
14 |
15 | *.bmp
16 | *.png
17 | *.jpg
18 | *.gif
19 | *.mp4
20 | *.pdf
21 |
22 | *.html
23 |
24 | *.rar
25 | *.zip
26 |
27 | *.doc
28 | *.docx
29 | *.ppt
30 | *.pptx
31 |
32 | *.filters
33 | *.vcxproj
34 | *.log
35 | *.sln
36 | *.user
37 | *.dll
38 | *.lib
39 | *.exe
40 | *.ilk
41 | *.pdb
42 | /.vscode/settings.json
43 |
--------------------------------------------------------------------------------
/Homeworks/2_ImageWarping/documents/1_RBF.md:
--------------------------------------------------------------------------------
1 | # Radial basis functions interpolation method [^RBF]
2 |
3 | $$
4 | \pmb{f}(\pmb{p})=\sum a_i R(d)+Aq+a
5 | $$
6 |
7 | 其中
8 |
9 | $$
10 | R(d)=(d^2+r^2)^{\mu/2}
11 | $$
12 |
13 | ## 参考文献
14 |
15 | [^RBF]: Arad N, Reisfeld D. [**Image warping using few anchor points and radial functions**](http://citeseer.ist.psu.edu/arad95image.html )[C]//Computer graphics forum. Edinburgh, UK: Blackwell Science Ltd, 1995, 14(1): 35-46.
16 |
17 |
--------------------------------------------------------------------------------
/Homeworks/9_PathTracing/README.md:
--------------------------------------------------------------------------------
1 | # 9. 路径追踪算法
2 |
3 | > Path Tracing
4 |
5 | ## 作业递交
6 |
7 | - 递交内容:程序代码及实验报告(可选:演示视频)
8 | - 递交时间:2020 年 5 月 2 日星期六
9 |
10 | ## 作业要求
11 |
12 | - 实现路径追踪算法
13 | - 环境光贴图重要性采样
14 | - 搭建场景(代码,json)并渲染
15 |
16 |
17 | ## 提供的材料
18 |
19 | 根据上述要求和方法根据两个文件夹`(1) documents`和`(2) project`的内容进行练习。
20 |
21 | ### (1) 说明文档 `documents` [->](documents/)
22 |
23 | 本次作业的要求说明和一些辅助资料
24 |
25 | ### (2) 作业项目 `project` [->](project/)
26 |
27 | 本次作业的基础代码框架
28 |
29 |
--------------------------------------------------------------------------------
/Homeworks/0_CppPratices/project/src/executables/6_UseLib/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 |
5 | using namespace std;
6 |
7 | int main()
8 | {
9 | PolynomialList p1("../data/P3.txt");
10 | PolynomialList p2("../data/P4.txt");
11 | PolynomialList p3;
12 | p1.Print();
13 | p2.Print();
14 |
15 | p3=p1+p2;
16 | p3.Print();
17 | p3=p1-p2;
18 | p3.Print();
19 |
20 | p3=p1*p2;
21 | p3.Print();
22 |
23 | return 0;
24 | }
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Engine/Material/BSDF_Glass.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include
4 |
5 | using namespace Ubpa;
6 |
7 | using namespace Ubpa::Math;
8 |
9 | using namespace std;
10 |
11 | const rgbf BSDF_Glass::Sample_f(const normalf & wo, const pointf2 & texcoord, normalf & wi, float & PD) {
12 | cout << "WARNING::BSDF_Glass:" << endl
13 | << "\t" << "not implemented" << endl;
14 | return 0.f;
15 | }
16 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/src/Engine/Material/BSDF_Mirror.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include
4 |
5 | using namespace Ubpa;
6 |
7 | using namespace Ubpa::Math;
8 |
9 | using namespace std;
10 |
11 | const rgbf BSDF_Mirror::Sample_f(const normalf & wo, const pointf2 & texcoord, normalf & wi, float & PD) {
12 | cout << "WARNING::BSDF_Mirror:" << endl
13 | << "\t" << "not implemented" << endl;
14 | return 0.f;
15 | }
16 |
--------------------------------------------------------------------------------
/Homeworks/4_MinSurfMeshPara/project/include/Basic/ArgManager.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 | #include
5 | #include