All Projects → bwasty → Learn Opengl Rs

bwasty / Learn Opengl Rs

Licence: unlicense
Rust port of JoeyDeVries/LearnOpenGL

Programming Languages

rust
11053 projects

Labels

Projects that are alternatives of or similar to Learn Opengl Rs

Worldwindjava
The NASA WorldWind Java SDK (WWJ) is for building cross-platform 3D geospatial desktop applications in Java.
Stars: ✭ 526 (-17.55%)
Mutual labels:  opengl
Open Builder
Open "Minecraft-like" game with multiplayer support and Lua scripting support for the both client and server
Stars: ✭ 569 (-10.82%)
Mutual labels:  opengl
Ouzel
C++ game engine for Windows, macOS, Linux, iOS, tvOS, Android, and web browsers
Stars: ✭ 607 (-4.86%)
Mutual labels:  opengl
Olive
Free open-source non-linear video editor
Stars: ✭ 5,682 (+790.6%)
Mutual labels:  opengl
Lighthouse2
Lighthouse 2 framework for real-time ray tracing
Stars: ✭ 542 (-15.05%)
Mutual labels:  opengl
Glchaos.p
3D GPUs Strange Attractors and Hypercomplex Fractals explorer - up to 256 Million particles in RealTime
Stars: ✭ 590 (-7.52%)
Mutual labels:  opengl
Freeorion
Source code repository of the FreeOrion project.
Stars: ✭ 507 (-20.53%)
Mutual labels:  opengl
Luminance Rs
Type-safe, type-level and stateless Rust graphics framework
Stars: ✭ 632 (-0.94%)
Mutual labels:  opengl
Hybridrenderingengine
Clustered Forward/Deferred renderer with Physically Based Shading, Image Based Lighting and a whole lot of OpenGL.
Stars: ✭ 563 (-11.76%)
Mutual labels:  opengl
Arxlibertatis
Cross-platform port of Arx Fatalis, a first-person role-playing game
Stars: ✭ 602 (-5.64%)
Mutual labels:  opengl
Bulllord Engine
lightspeed lightweight elegant game engine in pure c
Stars: ✭ 539 (-15.52%)
Mutual labels:  opengl
Silk.net
The high-speed OpenAL, OpenGL, Vulkan, and GLFW bindings library your mother warned you about.
Stars: ✭ 534 (-16.3%)
Mutual labels:  opengl
Renderdoc
RenderDoc is a stand-alone graphics debugging tool.
Stars: ✭ 5,969 (+835.58%)
Mutual labels:  opengl
Awesome Glsl
🎇 Compilation of the best resources to learn programming OpenGL Shaders
Stars: ✭ 530 (-16.93%)
Mutual labels:  opengl
Trinity
android video record editor muxer sdk
Stars: ✭ 609 (-4.55%)
Mutual labels:  opengl
Gfx
[maintenance mode] A low-overhead Vulkan-like GPU API for Rust.
Stars: ✭ 5,045 (+690.75%)
Mutual labels:  opengl
Pyrender
Easy-to-use glTF 2.0-compliant OpenGL renderer for visualization of 3D scenes.
Stars: ✭ 582 (-8.78%)
Mutual labels:  opengl
Glsl Pathtracer
A GLSL Path Tracer
Stars: ✭ 634 (-0.63%)
Mutual labels:  opengl
Matcaps
Huge library of matcap PNG textures organized by color
Stars: ✭ 607 (-4.86%)
Mutual labels:  opengl
Androidinstantvideo
展现Android硬编码下的视频数据流动,可以对视频做处理,例如加滤镜,加水印等,做直播推流(用RTMP)。 Show the stream of Android video hardware encode, including video processing and video publishing by RTMP.
Stars: ✭ 601 (-5.8%)
Mutual labels:  opengl

learn-opengl-rs Build Status

Rust port of https://github.com/JoeyDeVries/LearnOpenGL

You should be able to follow the tutorials at https://learnopengl.com/ with this - the code structure has been kept similar to the original C++ wherever possible.

This also means it's not necessarily the most idiomatic Rust code. For example, some standard naming convention lints are disabled and all OpenGL calls are "raw" and wrapped in unsafe blocks.

Run individual tutorials like this: cargo run 1_3_2 (for /src/_1_getting_started/_3_2_shaders_interpolation.rs).

For reduced compilation times, you may only compile the code for a certain chapter by adding --no-default-features --features chapter-1 for example.

1_3_2 2_6 3_1

4_6_2 4_9_1 4_10_3

Chapters

1. Getting started

Notes

  • You can mostly ignore the setup instructions at Getting-started/Creating-a-window. Just create a new project with cargo and copy the dependency section from Cargo.toml. Only glfw-rs might need some more setup, see here for details. You can also use glutin (a pure Rust alternative to GLFW), but the API is a bit different, so following the tutorials might not be as straight-forward.
  • You might be tempted to use glium instead of raw OpenGL. I'd recommend against that, at least in the beginning, to get a good understanding of how OpenGL really works. Also, glium is not actively maintained at the moment.
  • If you experience black screens or weird rendering artifacts, check out the glCheckError! macro from chapter 7.
  • exercises have been mostly omitted. You can look up the solutions in the original C++ source.

2. Lighting

3. Model loading

Notes

  • For simplicity tobj is used instead of assimp (simpler interface, pure Rust and later tutorials only load OBJ files anyway). For alternatives see here and here.
  • The image crate is quite slow in debug mode - loading the nanosuit textures takes so much time that it can be faster to use release mode (including compile time).

4. Advanced OpenGL

Status: complete

5. Advanced Lighting

Status: partially done (4/9).

6. PBR

Status: partially done (1/2).

7. In Practice

Status: Debugging complete (the other two are not in the repo)


A note about the code organization

Originally each tutorial was a separate executable (using src/bin and cargo run --bin <name>. This didn't play very well with the RLS and clippy (-> rust-lang-nursery/rls#132). Now all are integrated into the main binary, which leads to long compile times. As a workaround there are now feature flags for each chapter.

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].