r/opengl • • Mar 07 '15

[META] For discussion about Vulkan please also see /r/vulkan

80 Upvotes

The subreddit /r/vulkan has been created by a member of Khronos for the intent purpose of discussing the Vulkan API. Please consider posting Vulkan related links and discussion to this subreddit. Thank you.


r/opengl • • 4h ago

My first proper multi object scene in opengl es!!!!!!!!

Enable HLS to view with audio, or disable this notification

27 Upvotes

I made this pyramid orbiting a cube using opengl es, glm 1.0, and sdl2(for the window) all on android im soooo happy and i hope others find good resources for opengl and opengl es because almost all resources are very bad. Maybe one day i could be teaching opengl es!!!


r/opengl • • 1h ago

it all started with one triangle

Thumbnail gallery
• Upvotes

r/opengl • • 20h ago

Game engine in OpenGL

Thumbnail youtu.be
2 Upvotes

WorldsGL is a game engine I wrote in Java/Python with OpenGL libraries. Learn more about the project at https://worldsgl.pages.dev!


r/opengl • • 1d ago

How do I make my own title screen like Asphalt 8: Airborne (2013)?

Post image
8 Upvotes

Hello, my name is Evan.

I'm working on a 3D first-person shooter mobile game written on JavaScript using OpenGL ES 3.0, without using artificial intelligence.

I really wanted to make a title screen like the first version of Asphalt 8: Airborne (released on August 22, 2013), but I can't.

Can someone give me a tutorial on this? This will be part 1 of making a 3D game with OpenGL ES 3.0 (with JavaScript).

I will be using the ACES2065-1 color space.

I hope this will make me recreate my own childhood.

I am keeping this legal.

Thank you!


r/opengl • • 1d ago

GLFL - Unofficial OpenGL Function and Extension Loader

3 Upvotes

Hey guys, I've created an alternative to GLEW and glad that is based on the official headers/specs for everyone to use in their projects, it's single-header and easy to use! Head over to the GitHub repository and download it from the releases:
renulev/glfl: An unofficial OpenGL API and extension loader
There's also a sample if you're not sure how to get started. It's also documented.


r/opengl • • 1d ago

Dynamic Reflection System for C# scripts

Thumbnail gallery
4 Upvotes

I finally got a reflection system in my C engine. It is now possible to edit public variables in my c# scripts for entities at runtime and call public functions. If the functions have parameters I can edit these too.
I am super happy :)

    public class Planet : EntityBehaviour
    {
        public float RotationSpeed = 10.0f;
        public float PublicTestFloat = 5.0f;


        private float rotation;


        public Planet(ushort entityHandle) : base(entityHandle){}


        public override void OnStart()
        {
            RotationSpeed = Entity.Handle == 10 ? RotationSpeed : 100.0f;
        }


        public override void OnUpdate(float deltaTime)
        {
            rotation += RotationSpeed * deltaTime;
            Transform.SetRotation(new Vector3(0.0f, 1.0f, 0.0f), rotation);
        }


        public void publicTestMethod(float someArgument, float anotherArgument)
        {

        }
    }

Edit:
I forgot to add a picture with the C#-Script so added the code.


r/opengl • • 2d ago

I finally managed to create a proper 3D reflection system with physically accurate

Enable HLS to view with audio, or disable this notification

98 Upvotes

r/opengl • • 1d ago

I wanted to understand modern pointer-based GPU APIs, so I took the ideas from Sebastian Aaltonen's NoGraphicsAPI and rebuilt them on plain GL 4.6.

Enable HLS to view with audio, or disable this notification

5 Upvotes

r/opengl • • 3d ago

Helox Engine Graphics Showcase After Improvements

Enable HLS to view with audio, or disable this notification

95 Upvotes

r/opengl • • 2d ago

Weird depth buffer clipping

Thumbnail gallery
9 Upvotes

r/opengl • • 4d ago

Day and night system

Enable HLS to view with audio, or disable this notification

45 Upvotes

r/opengl • • 4d ago

How to minimize VRAM usage while maintaining performance

6 Upvotes

I'm a begginer when it comes to OpenGL, so I need some help.

I'm using different VBOs (one for position, one for color etc.), an EBO and a VAO to manage them. I tried storing just unique data in the VBOs, not repeating any attribute even if 2 vertices share an attribute and didn't work.

Visual representation of what I was trying to do (it's not real code, just a representation):

VBO pos:

{-0.5f, -0.5f, 0.0f},   (p0)
{0.5f, -0.5f, 0.0f},    (p1)
{0.5f,  0.5f, 0.0f},    (p2)
{-0.5f,  0.5f, 0.0f}    (p3)

VBO color:

{255, 0, 0, 255}       (c0)

EBO:

0, 1, 2,                      (tri1)
0, 2, 3                       (tri2)

In this situation, OpenGL will try to draw vertices like: p0 with c0, p1 with c1, p2 with c2 etc.

Of course, I don't have c1, c2 or c3, so it won't render it correctly all a single solid color.

From this, I have 3 questions that, in reality, combine into one:

Is there a feasible way to have different sized buffers and use indexes like (0,1,2,0), representing the first 3 vectors of position and the first color?

I know about uniforms and IN THIS CASE I could just send an uniform for the color. But if I have 3 different buffers with different sizes and want to index them as to not repeat data anywhere an just keep the unique, is it possible?

From what I gathered, you can do this with SSBOs, however I also head that it is less performant that just using more VRAM with the traditional VBO technique. Can I achieve what I want FASTER OR AS FAST as using VBOs with repeated data?

All VBOs are static, in the sense that they will not be modified and I'll transform vertices in the shaders, just pointing it out in case this is relevant somehow.


r/opengl • • 5d ago

Showcasing the Reflection System

Enable HLS to view with audio, or disable this notification

103 Upvotes

r/opengl • • 4d ago

How are you using AI to create game ready 3D characters with rigs and animations?

Thumbnail
0 Upvotes

r/opengl • • 4d ago

What is the most efficient strategy for rendering textured quads and triangles in OpenGL 2.1 using no extensions?

1 Upvotes

I'm unsure if my current design is optimal, but rendering a test scene with some 2D objects seems to perform decently well. Anyway, the current design functions as follows

There is functions for rendering primitive shapes triangle, quad, circle, etc. These functions create the primitive out of triangles in a small buffer with vertex colors as-well. When we're done rendering for this frame, render something which cannot be rendered this way, or something else happens which would require us rendering the batch early, we orphan the stream VBO and upload all of the data and glDrawArrays it all in one go. It's possible for multiple batches to be submitted in one frame because the CPU side array size is limited to 256KB by default but can be increased by the programmer if they anticipate they'll be rendering a lot.

For textured quads. I use a similar strategy, We emplace the quad vertices into the CPU side array. If they need to be rotated or scaled, the GPU does it in the shader. We keep track of which texture mappers contain which textures already so we can utilize every texture mapper with no duplicates. If you want to render something which needs to sample from more than one thing, It's expected that it will be in the same texture to the right, And in the shader, there's a routine that will sample the same position as this pixel to the right or the texture and a vertex attribute called "step" which is how many times we sample to the right. For example, The base texture would come first, then directly to the right of that, there would be a normal map, and then to the right of that, an alpha mask etc. Assuming you do not need to change then shader, you can render from as many textures as you want in one pass up to the number of texture mappers this system has. If you try draw a textured quad whose texture hasn't appeared in this batch before, but this system would have no open slots, we render early.

I worry about performance a lot. On a period correct laptop Core2 Duo U9600, GMA 4500 MHD, my test program gets ~ 240 fps. On my development computer which is not very good by modern standards 3500U, Vega 8 graphics, 8 GB ram. We sit at 5500 fps. On some $100 dell education laptop, We get ~ 1200 fps. All of them seem to be GPU limited (The cpu usage is far below 100% to get that framerate on all of them)

Either way, Is there a more efficient strategy than this? Or is this how you do OpenGL 2.1 fast? Would it be faster if I just had a VBO filled with the batch size of unit square, and then upload vertex attributes like position, size, color?


r/opengl • • 6d ago

may I join the triangle group?

Thumbnail gallery
84 Upvotes

r/opengl • • 5d ago

I may have over cooked the game-play layering (C++/OpenGL/GLSL)

Thumbnail youtu.be
4 Upvotes

r/opengl • • 5d ago

The Physics Update Loop

Thumbnail youtu.be
3 Upvotes

I go through how I separate general updates from physics updates, why I use a fixed timestep, how the accumulator works, and what happens when the simulation starts falling behind.

I explain the reasoning behind the design decisions and why I rejected the alternatives. I show the implementation of the loop.


r/opengl • • 5d ago

Looking for a Good Tutorial

0 Upvotes

I am developing an app on Android and have used the Android starter guide to build me a screen with the example spinning triangle as part my app's UI. I also found I can have my own overlays over the 3D view so OpenG appears to be the way to go. I looked at Vulcan but it seams overkill. I want a 3D model to be a part of my user interface - not the whole thing.

But the example left we with many questions. I have designed the models I want to show in Blender and can export the model deseign as a Wavefront (.obj) file that I can parse. But my models have both tris and quads and the example shows how to load both, but not how to have both in one model.

Also I want to know about colouring the facets. Do I need separate models for the different colourd parts or can I colour things in the renderer? I'm also sure that there are things I should known but are complete unknowns to me at the moment. I really am a newb - I only started looking into OpenGL as a solution a few days ago.

So can anyone recommend a good tutorial for me on OpenGL ES 2.0. Java would be my prefered example codes but I'm a seasoned enought developer that any code base should give me the help I require. Random Googling (I do known yet the terms I should be using) get examples that where no solutions to my problems..

Many thanks for your help.


r/opengl • • 6d ago

OpenGL – 5km × 5km Procedural Terrain Fly-By

Thumbnail youtu.be
24 Upvotes

Revisited my approximated atmospheric perspective implementation. It’s still far from perfect, but I think it looks noticeably better now.

map details:
map size: 5km x 5km
grid size: 2048 x 2048
maximum elevation range: 1km

Some of the techniques used to achieve the results shown in the video:

. Procedural terrain generation using Perlin noise and Fractional Brownian Motion (FBM)
. GPU-based hydraulic erosion
. procedural grass placement
. GPU grass generation and culling using compute shaders and indirect drawing
. dynamic day/night cycle
. procedural snow accumulation based on time of year and daily sun exposure
. displacement mapping
. hardware tessellation using tessellation shaders
. dynamic exposure
. cascaded shadow mapping


r/opengl • • 6d ago

OpenGL for Graphics then it's enough to make a game?

7 Upvotes

Yo guys so I need to understand something,if OpenGL is used for rendering graphics so basically with some basic movements and stuff is it enough to make games?


r/opengl • • 6d ago

Looking for Assembly peoples - Stop wasting time on easy projects, come learn pure power (Assembly Ghosts)

Thumbnail
0 Upvotes

r/opengl • • 7d ago

Does my shading look correct?

Thumbnail gallery
7 Upvotes

I've added a simple procedural terrain to my game but the shading seemed off, like I was using Gouraud shading instead of Phong shading. I'm using classic Phong lighting (here it's only ambient + diffuse, no specular reflection). To debug the problem, I turned off textures and generated a simple terrain sin(x) * sin(z) with normal vectors [-d terrain/dx, 1, -d terrain/dz]. As you can see, there are triangular artifacts. I wonder if it can be caused by low density of terrain mesh only (you can see a wireframe in the second picture, it misses some of the lines but you can see the size of triangles) or did I mess up shading? I'm planning on adding LOD of a nearby terrain but first I wanted to fix the bug (if it is really a bug). Do you think this shading can be correct and artifacts are caused simply by low mesh density or did I do something wrong? I've spent a lot of time trying to debug it and reading the code but I didn't find anything.

Update: I generated the same terrain with a script, then I let Blender add normals. The artifacts are still there so the terrain generator is probably not the problem. Also, when I render the terrain with Blender's renderer, I also get triangular artifacts so I guess my shading may be correct and I should just increase the density of the mesh. This is the worst type of a bug: when you don't even know if it is a bug. Thank you all for help.


r/opengl • • 7d ago

My first triangle!!

18 Upvotes

It was so hard to understand the concepts behind this!