Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/berkbavas/bsplinerenderer
3D B-Spline renderer written in C++ using Qt, OpenGL and Eigen
https://github.com/berkbavas/bsplinerenderer
3d-curves 3d-graphics bezier-curves bsplines computer-graphics eigen3 opengl
Last synced: 2 months ago
JSON representation
3D B-Spline renderer written in C++ using Qt, OpenGL and Eigen
- Host: GitHub
- URL: https://github.com/berkbavas/bsplinerenderer
- Owner: berkbavas
- Created: 2022-07-09T06:21:16.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-11-09T17:40:57.000Z (2 months ago)
- Last Synced: 2024-11-09T18:30:20.191Z (2 months ago)
- Topics: 3d-curves, 3d-graphics, bezier-curves, bsplines, computer-graphics, eigen3, opengl
- Language: C++
- Homepage:
- Size: 30.7 MB
- Stars: 22
- Watchers: 1
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# B-Spline Renderer
Rendering 3D B-splines in ``C++`` using ``Qt``, ``OpenGL`` and ``Eigen``.B-splines are parametric curves that consist of several Bézier curves whose control points satisfy specific conditions.
I used cubic Bézier curves for the interpolation of knots. Given a set of knots,
a cubic Bézier curve is generated between each pair of knots.
Then, these Bézier curves are glued together to form the final curve, the B-spline.
The algorithm for the generation of the curves can be found [here](https://www.math.ucla.edu/~baker/149.1.02w/handouts/dd_splines.pdf). Although it is about 2D B-splines, interpolating 3D B-splines is not so different.## Build
1) Install `CMake 3.25.1` or above.
2) Install `Visual Studio 2022` and `MSVC C++ v143 Compiler`.
3) Install `Qt 6.7.3 MSVC2022 64bit` kit.
4) Set environment variable `Qt6_DIR` as `C:\Qt\6.7.3\msvc2022_64`.
5) Clone the repo `git clone https://github.com/berkbavas/BSplineRenderer.git`.
6) Create a folder `mkdir Build`.
7) Enter the folder `cd Build`.
8) Run CMake `cmake ..`.
9) Open `BSplineRenderer.sln` with `Visual Studio 2022`.
10) Build with `Release` configuration.## Video
https://github.com/user-attachments/assets/daf205b8-dc9c-4aac-8f7b-df823693db86