fyr233 / Noneuclidgraphics
非欧几何世界中的渲染引擎
Stars: ✭ 65
Labels
Projects that are alternatives of or similar to Noneuclidgraphics
Fssgi
Exploratory Project on Fast Screen Space Global Illumination
Stars: ✭ 22 (-66.15%)
Mutual labels: computer-graphics
Redner
Differentiable rendering without approximation.
Stars: ✭ 964 (+1383.08%)
Mutual labels: computer-graphics
Meshcnn
Convolutional Neural Network for 3D meshes in PyTorch
Stars: ✭ 1,032 (+1487.69%)
Mutual labels: computer-graphics
Spectral Brdf Explorer
⚡️💻 OpenGL application inspired by Walt Disney Animation Studios BRDF Viewer. A BRDF Viewer that support standard RGB and spectral data (tristimulus values) color calculation.
Stars: ✭ 36 (-44.62%)
Mutual labels: computer-graphics
Contrastive Unpaired Translation
Contrastive unpaired image-to-image translation, faster and lighter training than cyclegan (ECCV 2020, in PyTorch)
Stars: ✭ 822 (+1164.62%)
Mutual labels: computer-graphics
Gloom
A minimalistic boilerplate for OpenGL with C++.
Stars: ✭ 54 (-16.92%)
Mutual labels: computer-graphics
Position Based Fluids
Real-time Position-Based Fluids in OpenCL, homework in Stanford's CS348C
Stars: ✭ 31 (-52.31%)
Mutual labels: computer-graphics
Pifu
This repository contains the code for the paper "PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization"
Stars: ✭ 1,021 (+1470.77%)
Mutual labels: computer-graphics
R1b
A thermal-printer-oriented, 1-bit graphics rasterizer for 2D and 3D
Stars: ✭ 29 (-55.38%)
Mutual labels: computer-graphics
Blender Flip Fluids
FLIP Fluids is a powerful liquid simulation plugin that gives you the ability to create high quality fluid effects all within Blender, the free and open source 3D creation suite.
Stars: ✭ 983 (+1412.31%)
Mutual labels: computer-graphics
Catpapers
Cool vision, learning, and graphics papers on Cats!
Stars: ✭ 918 (+1312.31%)
Mutual labels: computer-graphics
Solarsys
Realistic Solar System simulation with three.js
Stars: ✭ 49 (-24.62%)
Mutual labels: computer-graphics
Anime4kcpp
A high performance anime upscaler
Stars: ✭ 887 (+1264.62%)
Mutual labels: computer-graphics
Awesome Creative Coding
Creative Coding: Generative Art, Data visualization, Interaction Design, Resources.
Stars: ✭ 8,696 (+13278.46%)
Mutual labels: computer-graphics
Bfm to flame
Convert from Basel Face Model (BFM) to the FLAME head model
Stars: ✭ 55 (-15.38%)
Mutual labels: computer-graphics
Graphics Snippets
Shading techniques and GLSL snippets
Stars: ✭ 53 (-18.46%)
Mutual labels: computer-graphics
Fluid Engine Dev
Fluid simulation engine for computer graphics applications
Stars: ✭ 1,007 (+1449.23%)
Mutual labels: computer-graphics
nonEuclidGraphics
非欧几何世界中的渲染引擎,有局部渲染和全局渲染两种模式。局部渲染使用OpenGL实现,全局渲染通过求解测地线方程实现。
我们会后续的维护和新的算法的探索。
编译
很抱歉我们还没有掌握 CMake,而是直接上传了 Visual Studio 的工程文件。大部分依赖文件都已经包括在了项目中。如果顺利的话,你需要下面几步:
- 推荐 Visual Studio 2019. C++17. 一些语法可能无法在低版本下编译通过。我们上传了
.sln
项目解决方案文件,你可以直接打开它, - 配置 OpenCV,并将OpenCV的
build
目录(例如D:\Library\opencv\build
)添加到系统变量中,名称为OpenCV_Dir
,你可以在 Windows 的系统属性->系统环境变量->系统变量添加这个变量。 - 本项目使用了GLFW库,请构建GLFW并将GLFW/bin添加到环境变量,或直接将glfw3.dll放在可执行文件所在目录。
- 我们使用OpenMP实现简易的并行加速。要在编译时开启它,需要在Visual Studio 2019的项目->属性->C/C++->语言中,将OpenMP支持设置为是,将符合模式设置为是。
运行
请选择 Release 模式编译运行以保证性能。
(这个项目的GUI基于Dear-Imgui)
在界面中通过 Engine 框内的控件交互完成操作,主界面显示的是局部渲染的效果
- Camera 栏,显示摄像机位置;设定 FarPlane 和 NearPlane。它决定了可见的范围。这对于非欧空间中的局部渲染很重要,因为空间的弯曲,局部渲染中远处的物体的呈现是不准确的。我们通过朦胧的效果使远处的物体逐渐消失,它由FarPlane决定。
- Mesh 栏,没有用。我们早期拿它来调试。
- GlobalRender 栏,全局渲染器的控制,使用全局渲染来查看准确的效果。Width 是图像的宽度(决定分辨率),step size是迭代的步长(改变它通常不会有明显的效果变化,但会影响计算的耗时)。Distance和Decay决了视野的大小,如果你希望视野范围更远,可以调大一旦这两个数值。点击 RayTracing 开始即可计算。命令行窗口中会显示进度——它通常需要数秒钟来渲染一张 1080p 的图片。
- Roam ,选中以进入漫游。使用"w前 a做 s后 d右 q上 e下"来移动摄像机,移动鼠标来改变方向。进入漫游模式后,鼠标会被占用,按下m可以退出漫游。
- EditMenu, 选中以打开物体编辑,查看所有的物体。可以进行移动、旋转、缩放、改变材质参数等操作。
- WorldExample,项目中提供了若干预设的非欧空间,妮可
- LoadMesh,加载网格文件到场景中(请小心!我们还没有在这里做异常处理,如果文件读取失败,程序会崩溃)。
项目源文件的构成
-
Shader
vertex.vert
fragment.frag
-
app
AutoCameraController
-
core
gl
vec
mat
tensor
func
transform
rgb
Mesh
Obj
Object
AreaLight
Texture2D
Material
-
nonEucideanEngine
RayTracer
Camera
Engine
Shader
World
WorldExample
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].