c67f23 No.543 [View All]
So what do you fine folks know 'bout volume culling in deferred rendering for shadow volumes and stencils.
I'm trying to do this as lazily ass possible so I can move on to based Oren-Nayar diffuse lighting with Cook-Torrance specular lighting, transparency, diffraction, diffusion etc.
84 postsand8 image repliesomitted. Click reply to view. ____________________________
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.9429
>>9402I'd usually have to end up nesting variables in a struct or procedures in a function for them to work fine, even still with memory related bugs.
Something is seriously wrong with the nvidia compiler.
For example, checking (couldn't even implement the other two sides) planes of view cubes forced me to create a 'max4' function;
Instead of simply checking if each side was within a light's radius and incrementing because of bugs(which also wouldn't work because bugs, also wouldn't force the other calculations) or doing
max(max(max(a,b),c),d)<Light.radius
you'd have to wrap it in a func and it'd work fine.
conditionals really bug out if they are nested, even given default returns outside of all conditions
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.12604
>>2245If you are still here anon, how are you doing culling?
The standard projection matrix loses precision for me(muh infinite projection matrix+infinite far distance)
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.12772
So I'm trying to make a racing game sort of like F-Zero. I can't draw so I went online and tried to find some designs that would fit into that sort of game.
Can any kind anons please critique my model? Keep in mind that this is my first attempt and it has no textures or anything, just the basic shape.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.12827
>>12772make cockpit area smaller, depending on the actual size of the ship
also have a separate polygon for the back that comes in a bit
some sports car like shit on the sides mite be cool too
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.16844
Welp, semester over finally took the two seconds of time to add Slerp and Lerp eqs.
Plan to make everything modular and rework the graphics system.
Mainly because of
>muh vulcan
Also constantly thinking about redesigning the whole engine so it can handle multiple techniques
Also need to work on GI and server side physics so the client only has to handle graphics input and network data
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.16846
>tfw people make some crazy ass complicated renderer and their game basically sucks
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.16849
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.16887
>>16849
vulcan will solve everything
I hope
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.16972
>>16846
What is the demoscene?
Have some respect for the people who make your life so much easier by writing the damn things.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.16996
HOLY nigger shit. So deferred rendering is actually slower?
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.16997
>>16846
This works well commercially
>>16996
Here's how I believe the hierarchy of fastest goes in my possibly incorrect opinion
~0-5
Forward
~5-10
Deferred
~10-50
Tiled Forward
~50-250
Tiled Deferred
~250-300
Clustered Forward
~300+
Clustered Deferred
We are talking on average in the environment.
Found out the hard way clustered is shitty for anything that isn't using a fuckton of lights-constantly; if you were to only start out with 5 lights in a clustered scene you'd notice the wide gap in FPS that you could be using for caustics etc.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.17000
>>16996
Computational throughput has advanced more than memory bandwidth, and the gap only continues to widen. Whether on the CPU or GPU, poorly written (or trivial) code can easily spend more time waiting for memory than it does performing actual work.
Deferred rendering trades reduced shader compute work (cheap firss past, only need to perform second pass once per pixel) for increased bandwidth usage (due to G-buffers being fuckhuge compared to simple color buffers).
Forward rendering trades greater shader compute work (need to run the expensive shaders potentially multiple times per pixel due to overdraw) for reduced bandwidth usage (color buffers are usually only 32-64 bits).
You do the math.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.17130
I've official given up on opengl , it was actually a reasonable api to work with but after version 3 they decided to DEPRICATE all the useful functions and make it 10 times harder to use. As a indie dev I really don't see the point of learning voa,vbos and several million switches and options to make a single polygon, when all you need is immediate mode and opengl 2.0. Its not like you need the latest features, its still going to run at 60fps if your still limiting yourself to indie games. chances are vulcan is going to replace it, or something else like apples metal api in the future so whats the point to learn this horrible api?
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.17131
>>17130
oh and I forget to mention GLSL. to make a polygon even work you ahve to write shader code for it which is anothe rlanguage in another language. It's probably cool and all if your all comfy in university and learning this stuff in your dorm room and being chad, but to a indie dev living at moms who is desperate for money, this shit is unacceptable.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.17161
>>17130
>>17131
If you're not thirsty for performance why are you using raw opengl in the first place? Get an engine.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.17163
>>17130
>immediate mode
Just go use Python for your engine while you are at it.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.17169
>>17161
because engines have too many limitations, and constraints, I want to have the architecture for the framework to work exactly like how I want it, I've used dozens of game engines and I feel the devs are lazy with support/features or do not prefer how they implement it. There are good game engines that do it right but most of them are proprietary, so OPENGL and creating my own engine is the only way I can feel satisfied. The problem is OPENGL itself has become more difficult to use, When they were competing with directx they tried to make it more user friendly so more people would adopt it, but now that they are dominating the market with smartphones /embedded machines they have no reason to lsiten to what the users or care about ease of use because there is no other choice and we're all forced to use this shitty api.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.17186
>>17130
You are an idiot if you do not see the amazing performance boosts from the jump from archaic practices like immediate mode. Besides being far faster, it is actually simpler to use. VAO, VBO, and shaders take a little bit of time to learn just like everything else. You end up writing less lines of code and compartmentalize your graphics data into a more OOP way.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.17237
>>17130
modern opengl: upload an entire mesh (or ALL of your meshes, if you know how to batch) to a VBO, put all of your state flags into a VAO, render the whole thing at once with a single draw call
ancient opengl: spin in a loop drawing a triangle at a time. or, at best, copy the same mesh to the GPU every frame, when you could have just stuck it in GPU memory and sent a cheap draw call instead
Clearly immediate mode is superior.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.17365
>>17130
VAOs and VBOs are a godsend and not hard to understand conceptually.
Treat VBOs like std vectors and VAOs are essentially a structure of those vectors similiar to this somewhat inaccurate pseudocode
VBO{
int type;
vector data;
}
VAO{
int binding;
vector <VBO>BoundVBOs;
}
The switches will hopefully be gone with Vulkan; I've yet to wrap mine up...but if you do, they won't be a problem
Vulkan is based on OpenGL, that the point of learning it.
It won't be completely different.
Its essentially OpenGL 5 without all the fixed pipeline and states fuckery.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.17761
Anyone here dealt with large numbers of shader permutations? From what I've gathered with D3D11 and such I need my vertex format to exactly match the data in my vertex buffers, so for instance if my model vertex format diverges ever so slightly I need to compile a whole new shader for it with the right vertex attributes, even if I don't use them (since I need to specify the format exactly).
ATM the way the material system I'm using works is by toggling on and off bits of code to compile (thus even more shaders to compile), so basically I'm going to end up with (number of vertex formats) * (number of material variants) amount of shaders as a minimum. Coupled with the amount of further permutations possible from compiling variants of those shaders (such as for shadow maps), and I'm easily looking somewhere in the range of 100+ shaders being used for a scene.
Are there any good techniques I could be using to reduce this obscene amount of shaders I need to generate and switch between, or should I just give in and accept it?
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.17775
>>17761
Reuse similar vertex and fragment shaders when you link them together into a new program. I doubt those are 100 unique programs. Especially the vertex shader parts. Also make sure to nor load all 100 of them into memory.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.18915
Is it even worth using OpenGL 3 over 2 when the latter doesn't require players to have a DX10+ GPU? I don't intend to write the next Cryengine 2 or anything, just something that I can use to render Deus Ex-style levels without looking like complete shit or something a hipster artfag crapped out in Unity.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.18917
>>18915
On PC? You should always try to learn the latest OpenGL. So I recommend you go with OpenGL 4.0.
Don't worry about making cooler shit with the newer versions. You can do the exact same on lower versions just with different methods.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.19202
>>18917
>buffers
>bindless textures
Granted this applies to Compute Shaders although most of the shit the new GL versions implement are more efficient
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.19207
>>18915
Considering it has god damn awful vertex buffer update handling as standard, I would avoid using OpenGL 2. Look to use at least the version 3.1 API if you want to retain your sanity.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.21940
Would it be feasible to shade the actors in a scene using different techniques than the rest of the scene? Characters using cell shading while the environment is rendered more traditionally, for example.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.22183
>>21940
Yes, use different pipelines
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.25356
Anyone into vulkan? been doing mostly logic/ai shit as of late
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.25661
Currently my engine uses a BSP tree, so I don't even need a Z-Buffer to render the world. Feels pretty nice.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.25740
>>25661
What are the advantages and caveats of a BSP tree?
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.25760
I want to make something like pic related (PSP graphics) but I have a toaster laptop I had since beginning of high school and I'm at my 4th year of college.
I can't emulate wii/gc games anymore too
what limitations do I have?
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.25765
>>25740
Really easy and fast collision detection, and no Z-Buffer (although this is optional, and sometimes its faster to use a Z-Buffer)
Collision detection is the main reason to use it, its way better at that than, for example, going through every solid object in your level. Rendering is faster but only if your scenes are simple.
The disadvantage is that its hard to code and understand at first, so you'll be spending some time (a month?) learning how BSP trees work when really you could just use a Z-Buffer and go through every solid object in your level and this is much easier to program. Even though its slower and horribly inefficient to do that computers have high enough performance to handle it if your level is simple.
Heres the tutorial I used for this engine: https://www.cs.utah.edu/~jsnider/SeniorProj/BSP1/default.html
Its pretty long and complicated, and took me a while to implement.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.26343
>>25760
So, are you saying your laptop can't even run gamecube/psp tier graphics?
What kind of dinosaur are you using
>>25765
Thanks anon, seems interesting.
so how does it handle dynamic objects?
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.27742
>>25356
Vulkan is literally >1k LOC to draw a triangle. You basically have to write a kernel, not as in image processing kernel, as in a fucking memory manager and scheduler.
It's meant exclusively for AAA engines.
>>25661
>>25765
I've never used BSP
For rendering this approach is archaic. Modern games use frustum culling and Early-Z.
If you need OIT then all you need is a GPU that supports atomics, though very few things actually need OIT.
For spatial partitioning oct/rectrees are entirely good enough.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.27787
>>27742
yeah, this is true, I didnt know about early-Z when I was implementing it. Thanks for sharing that.
My main use for bsp is the line of sight testing. I dont know what OIT stands for.
This is my project now, its come a long way since febuary... I forgot about that old picture, the game didnt even have a hud, or enemies, or lighting then...
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.27790
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.27791
>>27790
I would assume not using an isometric prespective
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.27841
>>27787
Order Independent Transparency.
For example, looking at a mipmapped chain fence through a window, or crystals under water.
The implementations are super fancy and fun to read about. Most games just eliminate the circumstances that make it needed.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.27847
>>27742
>Vulkan is literally >1k LOC to draw a triangle. You basically have to write a kernel, not as in image processing kernel, as in a fucking memory manager and scheduler.
>It's meant exclusively for AAA engines.
Bullshit. It is >1k LOC, but that's because it doesn't hide boilerplate from you. It's not that much harder than OpenGL once you get the concepts and get it up and running. The reason OpenGL makes it easier is because OpenGL starts off with a shit-load of implicit space. Outside of the boilerplate code, Vulkan isn't much harder at all.
And it's more meant for engines than AAA games. It's a retarded thing to assume that AAA games are the only things that can leverage good performance or better standards for development.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.27853
>>27791
I'm familiar to some extent with the terms 'orthographic' and 'perspective',
https://www.blender.org/manual/editors/3dview/navigate/3d_view.html
but not really isometric. but thanks for the tip anon.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.27860
Do any of you have experience with or opinions on visibility buffers? I'm thinking of implementing one with a tiled forward renderer so people running my game in 4K or with MSAA won't have to worry about running out of VRAM.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.27861
How much more/less painful would it be to exchange my shitty models & meshes with some voxel work? My GDD isn't calling for some VIP Quality work holistically.
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.27862
>>27841
I am going to look these things up. its always fun to implement different algorithms.
I want to, at some point, make a software renderer (for fun) which a BSP tree would actually make sense for - or not - when i started, all I knew about rendering algorithms is that quake used a BSP tree, so maybe if my game used one, it would work? I haven't gone wrong with it yet, but that's because I haven't tried to make big open natural terrain maps like newer games can do.
>>27853
isometric prepsective is basically an orthographic prespective, as far as I can tell.
this has to do with what graphics programmers call the "perspective matrix"- basically how the program gets all the 3d coordinates and turns them into 2d coordinates in perspective so it looks 3d.
http://www.songho.ca/opengl/gl_projectionmatrix.html
dont worry about it unless you are writing your own software renderer - most API's will do this kind of thing for you, for example that link is talking about openGL
maybe I went off on a tangent with this post, sorry
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.27872
>>27860
Tiled *forward* rendering? Wtf would that even do? You must not understand the purpose of tiled-deferred.
>people will run out of VRAM for framebuffer
If your framebuffer is the size of VRAM then there's no way in hell you won't be severely bandwidth limited
>MSAA uses too much memory
use a postprocess AA
>4k uses too much memory
use texture compression
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.27875
>>543
two year old thread on frontpage
gud shit
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.27885
>>18915
Anything that doesn't use integrated graphics and made after 2007 should be okay to use
All Macs after this period support 3.3.
The majority of Nvidia cards do.
I also assume the same for AMD
Considering the lifespan of laptops/desktops I'm sure anyone who'd buy your shit has replaced their card anyway
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.27974
>>18915
Using non-core (<3.2) GL can actually cause performance issues on newer cards. The drivers aren't optimized for it.
If you don't need modern GL then why aren't you using an engine?
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
c67f23 No.28384
>>2298
Oh look, more wooden box tutorials!
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.
5b36d8 No.29909
Disclaimer: this post and the subject matter and contents thereof - text, media, or otherwise - do not necessarily reflect the views of the 8kun administration.