OpenXRay / OpenXRay/xray-16

OpenGL Renderer

Open
#280 10 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Help wanted OpenGL Player Experience Portability Renderer
Dominant language
C++
Stars
3.6k
Forks
536
Avg merge
6d 1h
Merged PRs (30d)
3

Description

Post here all issues you have with OpenGL Renderer.

Current tasks and known bugs:

  • Fix crash after second Device restart (type vid_restart several times in console to reproduce) (e9427ac939862e103e513a614ee1f9e7ae3c8df4)
  • Fix bugs with dynamic lighting
    • Fix bugs with local lights (lamps, campfires, etc) (06bb7657fad7d6578820cdfbf4aa7701ee732496, 615152e548a309d4dd4df3d7beb982f18af7bae5)
  • Rewrite sun lighting calculation from D3DXMath (#463, intersects with #261)
  • Backend
    • Supported OpenGL versions:
      • 4.5
      • 4.1
      • 3.3
        • Implement shader pipeline that can work without GL_ARB_separate_shader_objects (b0e4de824046f77b9de378ea5d6f3de4e53b22a4)
      • 3.1/3.0 maybe?
      • 2.2 maybe?
      • 2.0 maybe?
    • Implement OpenGL ES support
      • 3.x (make initial implementation for ES 3.x, if going straight to 2.0 isn't possible)
      • 2.0 (lower requirement to 2.0, if initial implementation was for 3.x)
    • Support for uniform buffer objects
    • Support MSAA
    • Support geometry shaders
    • Support compute shaders
    • Support tesselation shaders
  • Shaders (two ways, should be supported both)
    • Use cross-compiler to compile shaders from DirectX renderer
      • Look into #258 for more info
    • Implement all shaders in GLSL (shaders/gl folder)
      • Implement vertex and fragment (pixel) shaders
        • Make implemented shaders work in all situations
          • Fix boxy sky textures with enabled Vertex Texture Fetch (#537)
          • Fix lighting glitches with G-buffer optimization enabled (r3_gbuffer_opt on)
          • Fix SSAO
          • Fix HBAO shader
      • MSAA support
      • Implement volumetric fog
      • Implement HDAO Ultra (compute shaders)
      • Implement tesselation

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the OpenGL renderer backend and the shaders/gl folder, then reproduce the listed renderer behavior with the relevant console commands such as vid_restart. The issue groups many possible tasks, including OpenGL version support, OpenGL ES, shader compilation, SSAO, and additional shader features; completion depends on selecting and defining one of those outstanding items.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics, game-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.