🎉 Celebrating 25 Years of GameDev.net! 🎉
Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!
Latest OpenGL Activity
What are you hoping to get out of this thread? Is there a specific problem you're trying to solve? Are you just here to vent about old versions of OpenGL? Is there something else?
I agree that the old OpenGL library wasn't the right API in the long term (Direct X got a lot closer initially) but Open…
I forgot to set the handle to HDC. Once resolved the code works fine. Thanks for the help and the input.
OpenGL procedural terrain.
Here is a smalll list of some of the techniques I used here:
. tessellation shaders
. trilinear texture mapping
. 2D billboards
. displacement mapping
. wind animation using noise texture
. HDR
. advanced bloom via downsampling
Found a solution. What I had was mostly correct, but I needed to flush the ZBuffer, then re-draw my portal triangles to the depth buffer after drawing the contents of the portal.
void RENDER_StartPolyStencil(vertexStruct* v, int n)
{
glEnable(GL_STENCIL_TEST);
glDepthMask(GL_TRUE);
glStencilMask…
Hi @_Silence_,
Okay, this is more complicated than I first imagined. I think that the main mistake I was making was thinking in terms of entire 3D objects when in reality I should be thinking in terms of primitives.
Might be worth restating what I would like to achieve and see whether this is possibl…
@Aressera I have managed to link everything but I have one problem. If I started a project as a C++ project but it depends on some .c files, how do I add them to the project folder? I opened the folder on my desktop and dragged and dropped the .c files where my main.cpp is but in the xcode app, it …
I wanted to improve the graphic quality for Merc Tactics by adding a SSAO shader and I looked into several techniques. The best quality implementation of this is GTAO. There is also ASSAO, which is used in the Godot engine. Unfortunately, GTAO is a bit too heavy weight and I want Merc Tactics …
Finally implemented proper day/night cycle inside my custom OpenGL render.
Now the engine can vary sun position according to hour and day of the year, and also according to the latitude, with a good approximation.
Thank you for the hint. I visualized the normal vectors and saw that they all had seemingly random orientations:
I printed out the calculated normals and visualized them by hand, confirming that they are actually all correct. I then changed my focus to the matter of actually sending this data to th…
snoken said:
I'm curious, what does the GetEdgePoly function return for you? Not seen a function name like this before
It returns the polygon index of the given half edge, or -1 if there is no ploy and we are on the boundary.
If we are at the boundary, u and v can be still computed. But there is no su…
Hi,
I am having a weird issue when rotating my character with animation. The issue is that a position in the world is being interpreted differently depending on the direction of the character. When I do not apply the animation rotation data to it, it seems correctly identify the position -519.0f, 0.…
The generic solution to your problem is commonly called “root motion" (https://docs.unrealengine.com/4.27/en-US/AnimatingObjects/SkeletalMeshAnimation/RootMotion/ , https://docs.unity3d.com/Manual/RootMotion.html).
I have no experience in implementing it myself, only used it in the various e…
Additional experiments with volumetric clouds, solved some glitches and managed to mix the clouds with the scene, using the depth of the scene to avoid to show clouds occluded by scene objects (like the terrain). For now I just used a simple 3D perlin noise for the clouds, in the future I plan to t…
I have not worked much with animation data, and actually i have animated it all by myself.
But i think it is common to us a root bone which represents the ground. This root bone parents the hip / pelvis, which usually is the first bone in the character hierarchy.
When animating a walking cycle, the r…
Additional experiments with displacement mapping using OpenGL tessellation shaders. Textures from: Textures.com
snoken said:
When using quaternions, the skeleton looks fine except the z axis rotation. The arms go up instead of down. If I negate only Z, the arms come down as they should but they are not aligned with the torso, they are rotated back. Other than that, the skeleton looks fine and in the correct p…
More experiments with terrain rendering, trying to add finer detail using a displacement map, applied over a procedurally generated terrain.
Textures from: Textures.com and FreePBR.com
Thank you for helping me understand and providing an insightful response once again!
snoken said:
I am confused on how you are supposed to combine these matrices
The normal standard order for transformations is T.R.S. I'm unsure if BVH follows this however.
For BVH and the rotations order, it seems to be Y,X,Z: https://research.cs.wisc.edu/graphics/Courses/cs-838-1999/Jeff/BVH.html
Simply trying it may give a faster answer than waiting for someone to answer the question.
Try to figure out what you see as the most likely correct solution, and build it in a small scale. If it works, you're done. If it fails you learned your idea was wrong, try to figure out what is wrong, correc…
I feel something is wrong specifically with RotationZ, when I apply this, the arms go all weird and the behaviour changes dramatically
You ignore rotations.
If you rotate the upper arm, you want to rotate the lower arm, hands etc. with it.
But currently you only propagate translation to child bones:
auto matrix = parentMatrix * Mat4::Translate(jointPos);
jointPos tells where the bone has its center of rotation, but you also need…
Just a small demo of triplanar texture mapping + normal mapping in action over a procedurally generated surface.
To better show the effect, in this simple demo I used a brick texture over a very smooth terrain (generated using small values of "persistence").
Textures from:
. FreePBR.com
. Textures.com
C…
Are you visualizing the normals correctly? It looks like the black is just negative values. You should do something like this to debug normals so that they are in [0,1] range:
gl_FragColor.rgb = n*0.5 + 0.5;
The colors are also much too saturated. If rendered with correct gamma, it should be lighter …
Thank you for the reply and giving an helpful and insightful explanation!
Hello,
World Of Anork is now released, in it's initial release:
Improved bloom + experiments with adaptive exposure.
Bloom is heavily inspired by the method described by Jorge Jimenez in his great slides here: http://www.iryoku.com/next-generation-post-processing-in-call-of-duty-advanced-warfare (starts from slide 144)
A small walk inside my procedurally generated terrain. Rendered in OpenGL.
The terrain was created using multiple layers of perlin noise and applying hydraulic erosion on it.
Grass and flowers are rendered using billboards and instancing.
Following up from the previous blog post about the Java engine or “Zengine” that I'm developing with my friend. I was contemplating how to go about implementing an editor build or rather multiple build types for editing and for a game. After doing some brainstorming I've figured out how to implemen…
So a couple of months ago, my friend and I both wanted to work on some sort of programming project together. We both work in software engineering but come from different backgrounds, I studied a BSc in Games Programming and he studied a BSc in Computer Science. Our idea was that we wanted to essent…
I am a professional programmer, but I do not develop games for a living. In the past, I have brought you the fine small3d game development library, open source titles like Gloom, Avoid the Bug and Frog Remixed …
These changes are also true for PySide6.
1. OpenGL classes have been moved to a separate PyQt6.QtOpenGL namespace:
PyQt5:
from PyQt5.QtGui import (QOpenGLBuffer, QOpenGLShader, QOpenGLShaderProgram,
QOpenGLTexture)
PyQt6:
from PyQt6.QtOpenGL import (QOpenGLBuffer, QOpenGLShader, …
It's over, I've finally completed my from scratch game project!
The final stretch has been far from glorious.
Rather than making features, it has been nonstop bug fixing.
To reach feature complete, I started just writing down non critical bugs rather than fixing them.
But after feature complete, I star…
https://sourceforge.net/projects/vivid-3d/
Vivid is a modern C++ 3D engine using OpenGL4+.
It is written using Visual C++ 2022, and relies on several open source projects to achieve it's goal of making it easy and run to make modern games with it.
- GPU Accelerated Skeletal animations for actor…
Built to power a new generation of game development tools, Ultra App Kit provides an easy-to-use C++ programming SDK for creating desktop GUI applications.
Unlike other alternatives like Dear ImGui, the Ultra App Kit GUI renders in retained mode rather than immediate mode, and is specifically …
small3d is a small, cross-platform 3D game development library I have put together and have been maintaining over the past few years. This is a tutorial on creating a ball in Blender, and then writing a C++ program that loads it and moves it around on the screen, using small3d. Alternatively you ca…
I had many problems with understanding shaders, but after getting a grasp - it is so easy, convenient and powerful! I present to you my twisted version of understanding this, hoping it will help other aspiring devs ?
This is my slow path from a total noob to a less-noob-ish shader programmer ? It wi…
Earlier this year, Collabora announced a new project with Microsoft: the implementation of OpenCL & OpenGL to DirectX translation layers. Here's the latest on this work, including the steps taken to improve the performance of the OpenGL-On-D3D12 driver.
Today, Collabora is excited to announce a partnership with Microsoft to build OpenCL and OpenGL mapping layers on DirectX, in order to bring OpenCL 1.2 and OpenGL 3.3 support to all Windows and DirectX 12 enabled devices. Support for OpenGL is realised through the Mesa3D project's Gallium layer.
We've just released all of the source code for the NeHe OpenGL lessons on our Github page at https://github.com/gamedev-net/nehe-opengl. code - 43 total platforms, configurations, and languages are included.
Now operated by GameDev.net, NeHe is located at http://nehe.gamedev.net where it has…
The Khronos™ Group, an open consortium of leading hardware and software companies, announces from the SIGGRAPH 2017 Conference the immediate public availability of the OpenGL® 4.6 specification. OpenGL 4.6 integrates the functionality of numerous ARB and EXT extensions created by Khronos members…