#GrubStomper29's OpenGL Sandbox
1 messages ยท Page 8 of 1
The "you're screwed" date is sort of a fuzzy thing because there are still capable parents that know how to raise healthy kids
But your odds go down over time for sure
theyll go back up though
They will after the water wars when hard times create tough men or whatever but hopefully we can cling onto some of the good stuff so that it can be passed on
yeah
I'm still looking at european countries to go to for whatever reason
im not very good at learning new languages though and i refuse to live in the uk
I'm holding out hope to save my slice of traditional familial American culture
switzerland looks georgous but it doesnt have the benefit of eu laws
The UK has major social issues too probably not any less tumultuous of a place to be than here
forsure
i reslly doubt itll be "fleeing" the us
just looking at options
i am NOT living in the balkans ๐ญ
@junior sparrow where are you from
Cutoff for gen Z is 97, I was born before that lmao
I am once again shilling Canada
You get to keep the same language and timezone
but you have to live in canada
Czechia ๐จ๐ฟ
you should be so lucky
If you want to move to Europe. I would give up on west Europe as whole. Some northern countries are okay but also look into east Europe as Poland and Czechia.
But be prepared to learn a language
east europe does not look pleasing either
north europe could be cool
Not even czechia or poland ๐คจ
both have good nature but im concerned about the concrete cube steriotype
There are some blocks with apartments but nothing like depressing grey commie blocks stereotype
alright
Same here in Poland
you get these in any other country too btw
man im looking for a cool paper titled something like "ilm evolution" that i read but cant find anymore
id really love to know more technical details, especially lighting, regarding ilm cgi in the 1995-2000 era
theres no shortage of documentaries explaining very surface level detail
I know for a fact, they used Alias poweranimator 2.42 for most of their modelling work.
This was NURBS modelling, not the modern polygon tools we use today
I think ILM must have an archive of papers somewhere
I know Pixar does
yeah
im also interested in how they matched cgi lighting with the set lighting so well
Well one cool thing about a film set is that there's a guy who's job it is to write down where all the lights are and what kind of light it is
In case they need to match it with reshoots later
yeah
something seems missing...
try waybackmachine
well the movie i was interested in, jurassic park, did have the cgi done by ilm but they used renderman for the final rendering
and iirc rendernan had custom lighting code so i cant say for certain what brdf was used
cook torrance was not unlikely given the fact cook worked at lucasfilm (owner of ilm) and then pixar (renderman creator)
I don't think there was some bdrf used there 
From first ironman movie they captured the scene and they tweaked the materials until it look good
well there was obviously no rt or ibl at the time
but i do think they used a brdf for the direct lighting
Are we sure it wasn't just blinn-phong?
that could also be likely
i just read Michael Crichton's jurassic park sequal, The Lost World
i really liked the jurassic park novel but this sequel was pretty lame
actually youre obviously right
you could probably just reach out to those people from back the and just ask
possibly but this isnt for much real purpose besides curiosity
@kind sparrow i am once again asking you to watch jurassic park
yesh the original
I've seen it
oh sweet
this had everything i wanted to know
i was right about cook torrance being used in late 90s renders but not jp
i dont want to watch instagram reels anymore
They suck ass generally
theyre not funny anymore its just showing me various forms of ragebait and hopelessnessmaxxing
lots of AI slop too
My stream is live in 30 mins if you want wholesome content ๐
will you be playing cave story
man i took a bunch of great beach pics but didnt set the aspect ratio right so i cant use them as phone wall papers unless i crop and lose video quality
i should learn some basic photgraphy to understand my camera settings
I briefly mentioned putting a time limit (3-6 months) on my next project as a way to improve productivity and was wondering what you all thought about it
nothing
do whatever you want, whenever you want, there is no rush
take your time
its a hobby after all
$TIMEPERIOD later you will realize you were ablent to put the time down anyway
alright
the only major steps left for this in the todo list are specular ibl, reflective shadow maps, and anti aliasing
and MAYBE normal map shadowing
Yeah I just work on stuff as long as it interests me
I think the skill to cultivate is to learn how to detect when you're not enjoying the project as much and just do something else with your time for a while
If you're just making rendering toys there's no end game anyways so there's not much point in pushing to a particular finish
yeah its impossible to sneak around this fact,, you just need enough stuff to juggle that you're doing something interesting most of the time
pbr is on git if yall wanna test it btw
The filament doc DOES explain why theres no specular denominator
https://bruop.github.io/ibl/ this is a great pbr resource
A guide to adding image based lighting that uses a multi-scattering
You can but I suspect the range of values is better covered by half float
There is of course another option...
half float? is that 16F
You can also approximate that texture with a polynomial like I do
I was bound by texture fetch so the extra math for the polynomial was well worth it
i believe filament does do that
Yeah 16f is half float
interesting
why would half float be better at doing unorm's only job?
Unorm has uniform precision but half float has more precision close to zero
I see
it was very appealing to right click -> save image then just use that rather than write my own code lol
i think im gonna have to write the env map convoluter though
But then you gotta deal with having another texture bound and shit. Where the polynomial you can just stick in the shader and call it a day
true
ill manage
i think this is my first time making a cubemap with gl dsa actually
Relevant reading
all the logl samples seem to lack any glTexStorage
right but I thought you still had to specify storage pre dsa too
Nah texImage* creates the storage iirc
Read the docsโข 
fendevel has once again saved me from that
it kinda makes sense assuming gl knows its a cubemap
lemme look
yeah im having trouble finding it in the spec
fendevel hasnt failed me yet
every day i get closer to switching to linux
rust anticheat is probably the only thing keeping me right now
I'm pretty close too. But I've always bounced off linux whenever I've tried
yeah
id have to replace hardware since my network adaptor has no linux drivers
i can put windows on a separate drive but that probably diminishes the privacy motive
and completely removing windows as a game dev seems unwise
there are probably tons of apps i can use for windows debloat/privacy
windows updates probably screw with that, i wonder if i can safely not update windows
If I have to do it on windows I may as well just make the switch
i wonder how much of the security concerns of not updating are just psy ops to make you update lol
50/50 I think
It's real but it's also a psyop
I run debloated win10
okay compromise
but my laptop uses kubuntu, it's a nice distro for "I don't care about all the annoying crap but I just want to use linux"
i might add rust is such a poorly written game
it looks like it was made in 2015 and runs 20-40 fps on my 3600x and 3050
the devs could literally check a box to make the anti cheat work with linux but refuse
i only play this garbage because my friends do and it can be good fun
GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, datas[i].width, datas[i].height);```
lol this random bug i discovered
level count? Take the max between the texture width and the width
I feel like fixing that improved the graphics but i might just be tricking myself
I'm still figuring cmft studio out
i could use that old amd program for cubemap convolution
itd probably be easier lol
i just dont care enough to write my own
its gonna be weird that im planning to use a dynamic solution for diffuse gi while i bake specular cubemaps
maybe i could sample specular reflections from rsm too? itd be interesting
i imagine rsm is too low frequency for this purpose
depends how shiny your objects are
bistro has that moped which worries me
otherwise not much else
Are you planning on using your RSM for LPV?
No
I can always have rsm and no indirect specular light
which is a synonym for using rsm for specular
lol
it sounds like the most attractive path atm
@plain mantle i did do some looking around; yes
that is the correct way
i dont wanna waste the cubemap code i wrote so i think im gonna add a skybox tonight
there be a hole in me skybox
and now its gone...
gequal
gl_FragDepth = texelFetch(inDepth, coords, 0).r;
in my lighting shader because i dont want to blit the depth buffer
I'm losing it
genuinely what type of pattern is this ๐ญ
sync error?
ill work on it tmrw night
the brain fog is astounding
Yeah it does look quite good 
Just needs a lil' antialiasing
fs
Nice tune, did you write it?
Nah more ear training
I wish lol
Provided to YouTube by RCA Records Label
#41 ยท Dave Matthews Band
Crash
โ 1996 BMG Music
Released on: 1996-04-30
Drums, Percussion, Composer: Carter Beauford
Bass Guitar, Piano, Composer: Stefan Lessard
Composer, Lyricist: David J. Matthews
Alto Saxophone, Baritone Saxophone, Flute, Soprano Saxophone, Tenor Saxophone, Woodwinds, Composer...
Next I think I should try the bridge portion at 1:10
Cool, great work!
nvm, I cant work on this song anymore unless i buy fl studio lol
Free trial ran out?
no the trial version just doesnt let you open project files
so you get one shot then youre done like ive been doing
Have you tried Reaper? Thats what I use
isnt that also not free
Its basically pay if you want
The free version has a nag screen but otherwise no limitations
anyways adding normal and radiant flux output to the shadow passes is surprisingly fast, only adding one or so ms to the overall frametime
im not sure how important normal mapping is for gi bounces. If it's not, I can probably skip that
maybe even skip writing normals altogether. It would require testing
man I cant believe I have to actually get the depth from my shadow map
a bit annoying since its a shadow sampler
i think ill just texelFetch the nearest texel
nvm, not allowed ๐
You can bind more than one sampler to the same texture btw
I imagined, but i dont think GL_DEPTH_COMPONENT textures allow it
good thing I have an hzb lol, I can use that
that's gonna have some nasty branching tho since I think I have one hzb per cascade
rsm is surprisingly simple for being a gi solution; I reckon im 60-70% done writing the impl
Interesting
I've heard it mentioned before maybe I should try it
How well does it handle enclosed spaces though
Does it only work in places that are one bounce away from sunlight or another major shadowcasting light
yeah only single bounce so you probably still need a weak flat ambient
a niave impl will also have light leakage
idk if that affects your visibility needs
you can raytrace occlusion or use ssao
jake answered it already, 
i dont think you can use both a shadow sampler and normal sampler tho
"Using this mode requires two special settings. First, the sampler used in GLSL must be a shadow sampler. Second, the texture used in that sampler must have activated depth comparison mode. Attempting to use a texture without comparison with a shadow sampler, or vice-versa, will result in an error upon rendering."
albiet, from gl wiki
what you quoted doesnt contradict that
you create sampler and texture separately
glBindSampler(normalSampler, 0);
glBindTextureUnit(shadowTexture, 0);
glBindSampler(shadowSampler, 1);
glBindTextureUnit(shadowTexture, 1);
right but the depth comparison mode is a texture parameter
no
can you set it via sampler?
i would very much think so, time to consult the speck
this is pain with no debug tools
nsight gives me a little functionality but all of the mesh draw calls will have black output
which is stupid and weird
@night shoal remember this function you gave me? ```glsl
vec3 reconstructFragmentWorldPositionFromDepth(float depth, vec2 screenSize, mat4 invViewProj)
{
//float z = depth * 2.0 - 1.0; // [0, 1] -> [-1, 1]
float z = depth;
vec2 position_cs = gl_FragCoord.xy / (screenSize - 1); // [0.5, screenSize] -> [0, 1]
vec4 position_ndc = vec4(position_cs * 2.0 - 1.0, z, 1.0); // [0, 1] -> [-1, 1]
// undo view + projection
vec4 position_ws = invViewProj * position_ndc;
position_ws /= position_ws.w;
return position_ws.xyz;
}
im wondering if it works out of the box with ortho
you just dont divide by w
Thanks man
Im trying to reconstruct world pos from shadow maps and its looking a bit odd
oh gee maybe its because the function uses gl_FragCoord lol
its still tilted weird
and thats not really near the world origin
Are you seeing what I'm seeing? : )
just dont look at the frametime or that it only works in the first cascade lol
and its still incredibly dark, this is supposed to be 3:00 pm
multiple cascades work but im not yet accounting for kernal size changes
and it near cascade edges it tries to sample outside of the texture, leaving a sort of black line
finally, broken cascade stabilization is causing weird noise patterns when you move
For performance, Jaker recommended I downsample the rsm maps and use 1 ssp with denoising
and the very last and obvious problem is that single bounce gi is pretty dark
you can add back some flat ambient but flat is flat, and you lose a ton of gi detail if you do so:
Maybe you can multiply the irradiance as a hack to gain back some detail
@kind sparrow here are the results so far
you can barely tell there's gi
Well you have low standards 
The 2nd one looks more realistic to me
But idk what details you're comparing against
just because its not as dark
the shadowed areas look less flat in the unaltered version
You should try LPV, it builds on RSM
dont you need scene voxelization
No, but it can help
Yeah it looks like it's hitting the right places but it's too dark
yeah
What if you multiply by pi 
Now you're thinking like a physicist
What if I generate real point lights with shadow maps
and those have rsm
2nd bounce, 5 minutes and 100gb per frame
What if you generated virtual point lights from your RSM
And stuffed them into some kinda volume...
Then you propagate the light....
Honestly looks way better
i have no clue where that red stain on the wall is from lol
oh
second cascade making the kernal huge
that shall be fixed
erm, its not physically correct ๐ค
You keep saying kernal... it's kernel
oops
It might be
you have my attention
Unless you have done some verification that your numerical values and units are coming out right, if it looks wrong it is likely wrong
That being said it could also just be wrong in some other way like not having local exposure
i doubt theres anything wrong with not multiplying by pi; its just so dark because only 1 gi bounce
I have a bunch of random PIs in my SH code
but on the other hand, there is some questionable stuff going on at the end of the irradiance gather
that is, averaging incoming light by samples?
im no pbr expert but i doubt thats physically correct
Are all the samples weighted equally?
no
i believe samples further from the frag are weighed heavier
that might explain it
How does sampling an RSM work? I only implemented it in the context of doing LPV
you sample the rsm texture and treat each sample like a directional point light
importance sampling looks like this
further samples are weighed heavier
That seems like alot of samples
how far out you sample is "scene dependent"
yeah I do 100 for now
you want 500+ for good results, but my gpu isnt good enough for that lol
I see why they invented LPV
and unfortunately, sampling further out can be genuinely costly due to cache misses
Yeah for lpv it's as simple as evaluating a spherical harmonic to get the irradiance
So 3 texture reads total
yeah
idk about spatiotemporal denoising though
if theres a library I can easily drop in then sure but i dont want to write one
Make sure you adjust the texel snapping for the downsampled res
mines still broken 
theres also the half resolution temporal optimization, which is probably around 4x faster
noice
@plain mantle apparently ive had reaper installed for quite some time
Yeah the screen does nothing but make you wait like 5 seconds
yeah and ironically its one of the most compelling ways to make me buy something
Other (paid) software makes you wait more than 5 seconds just because its slow 
Nah I have not
i see
rsm over multiple cascades is gonna be painful
im not exactly sure what to do at cascade edges
i cant easily translate one cascades uv to another
I might ask jaker
theres also the disk scaling
so I need to figure out the ratio of texel size from cascade n to n+1
back to cascade stabilization
its totally fixed now
but only if set the radius to twice of what it should be
lest you get missing shadows
and shadows that shouldnt be there
curious
yeah and sometimes I just accidentally fix them? what?
well im never touching this code again
look at this resolution, only 2x2 kernel
this wonderful investment has made rsm look much more consistent
now for those magic ratios
its hard to describe
i know the shadow map projection matrices have different "sizes"
as an aside, the normals you use for normal offset shadow reciever positions matters
screen space derivatives have been the source of a lot of aliasing in this regard
you can use g buffer normals and these artifacts are replaced by new ones due to normal maps
ideally you use geometry normals, but those just arent available unless I want to defer normal mapping to the lighting stage
which may not be a terrible idea
or
since my normal gbuffers are rgba, if I could compress normals to 2 channel I could store both
some guy mentioned spherical coordinates on a forumn
this is retarded but i want to try it
wow that was retarded but it works and theres significantly less aliasing
and some more shadow bias fine tuning
idk about yall but I think this is some really solid shadow mapping
halve the resolution and it still looks great
heres rsm back on
fixed shadows really make a difference imo
heres a hack
apply ambient light only if the frag is pointing upwards
what do you guys think
here it is with a hemisphere calc rather than cuttoff. Probably not trig accurate. Idc
I dont think im gonna get results im happy with unless i have some path tracer to compare with
us route 50 was paved by adolf hitler who designed it to maximize fuel efficiency by ensuring your car never moves
Where can I get whatever you're on
link is in the very first post
its such a terrible road
theres a bunch of old nintendo spec online for the gamecube
invaluable for the next project
yk i was gonna try making some music but fl studio is being a pain
i was able to make the intro and the drum beat but not the rest of the instruments
heres what i got @plain mantle
oops export bug hold on
Are you fine being pinged for this stuff
this wouldve been the basis (intro having came from 6:43) https://youtu.be/p7wAohYGf04?t=461
Dave Matthews Band performing โAll Along The Watchtowerโ live in Central Park
Listen to The Central Park Concert: https://DaveMatthewsBand.lnk.to/dmb_centralpark!wtchtwr
Listen to your favorite Dave Matthews Band songs: https://DaveMatthewsBand.lnk.to/essentials!wtchtwr
Follow Dave Matthews Band:
Spotify: https://DaveMatthewsBand.lnk.to/es...
Yeah I like to hear your progress ๐
probably a bad comparison since im essentially covering other peoples creations but I think im much better than when I started with this lol:
I never realized that part in All Along the Watchtower actually sounds a lot like Smooth Criminal
https://www.youtube.com/watch?v=h_D3VFfhvs4
The short film for Michael Jackson's "Smooth Criminal" was the centerpiece of the feature film Moonwalker, and featured the debut of Michael's iconic "anti-gravity lean." Inspired in part by Fred Astaire's "Girl Hunt Ballet" dance number in the film The Band Wagon, "Smooth Criminal" was named Best Video at the BRIT Awards, Broadcast Film Critics...
dmb's version of it really only kept the lyrics. I think everything else is original
Hmm. I saw a list of common interview questions for graphics programmers and a fair share were on OOP related topics
I wonder if avoiding OOP (for now) would be a mistake
it doesnt matter
you can write stuff in a procedural way, in an oop way, in an aop way in a functional way
despite what opinionated youtube-c-influencers say, it doesnt matter
I know that
rather than trying to be a i-only-use-c-and-no-libs-peasant, embrace all the things, it doesnt hurt, and might land you a job for the time being, even if its a webdev or db-golem at some enterprise
That makes sense
its like when you ask which language to use to start your opengl journey, any language works you are comfy with
but I've personally still never seen a use for inheritance
probly since my project complexity is sub zero
oop is not just about inheritance
for sure
best example for inheritance are retained mode ui libs/frameworks, there it makes sense even
game entity wise not so much
Maybe I could inherit from those std exceptions and make my own
you could and thats a wise idea too
Maybe I should actually throw exceptions ๐ค
rather than having a generic std::exception, you could have a specific filenotfoundexception or a invalidurlexception and then giving you specific information about it, and not just a generic string
dont stress it, and dont overthink it
I'll def need better debug and editor features next project around
yeah, same
nsight and rd should be back with full features since i plan to use daxa
frustum visualizations for all of them, camera, shadow, shadow cascades, light/probe spheres/cones
not much of that with gcn styled renders
gcn styled?
but stuff like blasting debug geo to the gpu would be nice
gamecube/ps2
ah
about that
the plan is to create graphics entirely plausible for a gamecube
same texture resolutions, lighting equations, framebuffer formats, etc.
but under the hood im still obviously going to use modern api features
i also want to limit model/texture memory to what the system was capable of but its still unclear to me if textures could live outside of the (iirc) 1mb texture cache
i have no interest in/clue about those platforms
okay lol
BAH
MISSING SHADOWS MISSING SHADOWS
okay for once its not bad cascade matrix calc
instead, my dither is going oob
@plain mantle do you just dither the frag z for calcing what cascade to use or do you dither frag z for the entire shadow calc
I use spherical cascades so I dither the radius
interesting
i think im just gonna dither the whole view pos
it sounds like a terrible idea but in reality i havent noticed any artifacts
this isnt fun
Alright I think this will be GI for the time being
RSM has been fixed for multiple cascades, and there's a weak hemisphere light for the atmosphere
- the sun directional light
idk how much longer i can avoid fixing oit...
i think instead ill look at other scenes with rsm
Fwiw, the only place I've used inheritance is in my math library where unit vectors inherit from standard vectors.
Welcome to the thread, I think
Thanks, long time lurker, first time poster๐
Thanks!
a bunch of new ppl in the thread and this project is on like its last month
I might return later and completely rewrite everything to have a sensible structure. main.cpp is maybe 2000 lines long and most of that is gl calls
I'm on my third rewrite of my vulkan thing
so I cannot judge you
this is the final one though
A very basic game
nice
I cant say anything for certain about it
it might be frog related but idk
what I do know is its going to have gamecube style graphics
your graphics are better than gamecube graphics though
you mean gamecube artistic style?
well i mean next project
whats next for this?
I'm still debating whether or not to fix OIT
i also want some anti aliasing
MSAA!
it's deferred!
Maybe you are the one person who actually does deferred + MSAA
I've been told it's possible, but I've never actually seen anyone do it
If you want something easy, just stick in FXAA
you can add FXAA in an afternoon
getting a good TAA impl is gonna be a pain in the ass and you will be tweaking shit for months
I dunno I've never tried it
i cant see how it would be any different than super sampling
there is a fancy trick where you just resolve the edges
But once again I've never actually seen anyone do it outside of a proof of concept
i wonder if anything in this project was the first time it was done
first person to do all this withour implementing moving objects ๐ฌ
I plugged fxaa once and didn't like it then stuck with msaa
it's a screenspace technique you literally copy paste so you can do it really fast and find out if you like it
yeah
Its much better than no-AA imo
but yeah its obviously not as good as the glory of MSAA
Deferred doesn't make as much sense these days IMO
So we should bring back MSAA too
Deferred can be very bandwidth intensive
it definitely does with 200 sample RSM
method acting but for coding retro graphics
how do you make your taskbar look like that?
I want mine to look like windows 95
I wish I could make my entire ui look like windows 95 tbh
retrobar, which does have all the win95 ones too
Thanks, that means a lot ๐
Honestly wish I had an idea how RSM worked, Iโm thinking about just doing svogi tbh
Seems rsm can do multi bounce too ?
Not at all
unless you drastically extend the technique
I have done RSM quite a long time ago. If I remember correctly you will render the depth and flux(shade the albedo) the scene from the shadows point of view and then you sample that flux
Shadow: https://github.com/lukasino1214/graphics-programming-rabbit-hole/blob/master/src/reflective_shadow_mapping/shadow.glsl
Sampling: https://github.com/lukasino1214/graphics-programming-rabbit-hole/blob/master/src/reflective_shadow_mapping/shader.glsl#L69-L86
Yeah you just sample the shadow map texels as light sources
This week, Jaker will present the paper "Reflective Shadow Maps." This paper introduces an algorithm for interactive rendering of plausible indirect illumination.
Paper Link: http://www.klayge.org/material/3_12/GI/rsm.pdf
Join our discord server: https://discord.gg/6TTRA5h
This is a very good explanation by our very own Jaker
I can also share code if you'd like
Oh right so thatโs how it works
I was tempted to do svogi but Iโll have a try with rsm
Could you not do raymarching for better results with rsm
Maybe that defeats the purpose
Probably
rsm is the basis of light propogation volumes
you could look into that
Yeah tbh if Iโm gonna mess with volume textures I may as well do voxel cone tracing
you could try that for the occlusion term
my rsm has no occlusion so the light leakage is bad
I'm simply not raytracing or marching because i dont care to build a bvh or scene voxelization
Idk how far back in the thread you've looked, but be warned that single bounce gi is extremely dark
have auto exposure to compensate for this ๐
0 times something is still zero
any shadows cast from far above, like the shadow of a building typically recieves 0 light from rsm
I looked into VCT in the past but I never quite found a voxel building setup I was pleased with
gi discussion without 3 letter acronym challenge
4 letter acronyms are also available
VSM and SSR my beloved which one are you talking about 50/50
what's the R? reflection vs. radiance?
I must now publish a paper on subsurface reflections
refraction
I fancy trying my own technique tbh, like a hybrid sdf-voxel gi
Sdf to allow for good shadows, voxels for the diffuse and specular colour
How much transparency do you have?
I never bothered implementing OIT 
none
It's your project you decide what is necessary
well im not gonna delete whats there
so we're probably stuck with non functional oit for now
You guys are witnessing in realtime the writing of the worst FXAA implementation in human history
I just stole Nvidia's impl
well the methodology at least
i want to use a compute pass with image load/store
so I can read and write to the same framebuffer texture
rsm is up on the main branch if anyone wants to give it a try
You can't
the default framebuffer isn't a texture
you can use a texture as framebuffer storage but not all framebuffers have texture storage
yeah
in that case
I think he wants to sample the default framebuffer no?
just want to sample an image right?
I don't know how this works in openg I guess, sorry
Either,
- I stick with compute and use a different framebuffer then at the very end blit to framebuffer 0
- Try to use a fullscreen pass instead (probably still not possible to read from the framebuffer texture)
- Change the engine so all previous draws are on a framebuffer with a texture, then use a fullscreen pass for fxaa and draw to default framebuffer
3 sounds best for now
Opengl doesnt know how opengl works
3 seems most efficient
I do that with my software raster, my graphics pipeline and about to do it with my compute render
2 birds with one stone
let me go delete this wonderful shader I was crafting
it was so sexy...
interesting
I never used memory barriers in OpenGL
you stick those in your shader hrm
I'm doing 3
well kinda
I use different compositing techniques depending on the selected graphics options
now for the million dollar question
probably a no
can I read from a framebuffer texture that I'm currently rendering too
yeah absolutely
you just need to be careful
wait do you mean in the fragment shader or compute
frag
explain what you wanna do
I have my framebuffer, with its color texture
yea
yep
while rendering to it
yeah I think thats UB actually
well there is an extension
you have my attention
trying to remember the name
this wouldnt be a problem if I could sample the default framebuffer texture
thats so annoying
is this esoteric or widely supported
Every game renders to an off screen fb and blits it to the screen with a fullscreen quad or something
So not being able to sample the back buffer shouldn't be an issue
cant be any less supported than nv mesh shader
lets give it a try
this of course only works if you are sampling from the same coord you are writing to
and in FXAA you are not
because you need to sample neighbours
so you really can't do FXAA in-place
oh yeah
but like thats not an opengl specific thing
you wouldn't be able to do it in vulkan either afaik
well thats fine
I need to be able to do my lighting pass in place
so that I can render from the offscreen fb to the default fb using fxaa fullscreen pass
why not just make another FB?
huge memory waste
define huge
I have several fbos allocated at once and I run on a 512MB 9800GTX
how much memory does your GPU have?
probably 8 gigs idk
yeah I wouldn't worry about the memory cost of one extra fbo
Really? Can you even run my project?
that's not my main machine lol
yeah I thought so
but it does run
its GL 3.3 max
If it's not even an MSAA framebuffer it's irrelevant
on your main? You tried?
wdym
a non-msaa framebuffer is not that big
1440x810
for some reason Im using 64 bit rgba color in my framebuffers?
i should probably address that if im so concerned about memory jeez
#1210394463730540624 message
alright
1440x810x4bpp = ~4.45 MB
I think you can handle 4.45 MB
we will never recover from these losses...
I think 10% of main.cpp is creating framebuffers
this code is so bad ๐ญ
make it framebuffers.cpp, ez problem solved 
the problem with getting better at coding is that the code you wrote when you were worse is still there
Bro there is shit code I wrote over a decade ago in ASO 
You just leave it in until you need to replace it
but seriously why are all my framebuffers rgba16f
who needs this precision
theyre not hdr or anything
GL_R11F_G11F_B10F my beloved
arent modern monitors capped at 8 bit color
Not at all
no, not even close
wow okay
Stick to 8bit presentation for now though, HDR output is a can of worms
not like i can test that, I dont have an hdr monitor
my left eye sees things palpably more red than my right
Go see a doctor
nah i got built in 3d glasses
most of my internal buffers are GL_R11F_G11F_B10F, then final output is whatever the default framebuffer is
usually 8 bit
fascinating
everything is gone
ah yeah I do weird depth crap
i need to add a depth texture too
everything is back
The spoils of an hour of work: a framebuffer
but soon we will finally kill the evil jaggies
apparently this issue has existed on the os for 3+ years
they should add a copilot llm to file explorer instead of fixing this
I wonder, why the big push for llms?
investor money
ive never seen anyone use them in person besides midwits cheating on essays
I had some people vibe code their whole high school thesis and the project
I think I used it to help write a fake review for my freind's parents place
oh yeah plenty of that in my hs comp sci classes
I used it to rephrase some stuff to sound it better and then some web dev bs
also template concept stuff is somewhat doable
but graphics programming hell no
iirc there were several occasions people tried vibecoding their way thru everything and then would ask me what a function is or something like that
their problem
believe me, it was
Less competition for you
A lot of investors thinking llm is huge
high school and college students are getting sniped by llms the same way as the kids with tiktok and cocomelon on their ipads
honestly
i might use gpt for some of my gen ed classes
i dont think Diversity 101 is gonna make me a better or worse programmer
๐
thats not a joke btw, i am required to take a diversity class
I am so happy I dont have that shit in my college only PE and english
only math and programming and computer science classes
I am so happy that I got rid of czech/literature
never again
word
im prob going into debt for this btw
that's because they don't charge you by the class
glad to be told I "need to be well rounded" for the literal 20th time I am going through school despite paying an absurd amount of money to get specialized knowledge
I needed a minimum SAT english score but I also need to take 2 semesters of english for reasons
yeah
I use claude code regularly at work, as well as deep research capabilities. They work. The anti-AI takes on this server are incorrect and will not age well. Itโs not yet useful for solving complex graphics programming problems and will hallucinate terrible answers. So donโt use it for that. It will save you lots of time and pain for things it is good at.
That's why I use it for web dev 
Itโs great at that
Itโs basically a fantastic code generator
And a super linter
But my work stuff is hell nah. It would need to get through the whole base and will get aneurysm while doing it
Engineers who donโt adapt will lose their jobs and will have trouble finding new ones.
It's quite sad that this is a reality
The only use ive found so far is to use it as google+
i might ask it about a technique, then skip straight to the sources section
its pretty rare that i resort to that though
It is not sad at all. If I have someone on my team struggling with a build system issue for days, blocking a release, a problem that using AI can solve in minutes thatโs poor performance. If they want to learn how the build system works so that they can solve it faster, do that when thereโs time.
These are real issues already at my work
I know my fair share of exactly that
I tried throwing AI at it but couldn't solve it
Yeah thatโs fair
But tbf I am dealing with quite dogshit level codebase and nobody has a clue how it works
I donโt want to derail Grubs thread too much, itโs very good with what we use at work
You can almost always find a good class that satisfies that requirement
Foreign language courses may count
At my uni they didn't and most of the options were bad but I was able to satisfy it with an anthropology class that was actually based and probably had the opposite effect lol
We all had to do breadth requirements, I took german for a semester, I was not prepared for how difficult is was 
I also had to take "Ethics for software development"
Which is a course apparently everyone in the tech industry has forgotten taking 
i am incredibly bad at foreign language
thats why you take a course
as in, learning it
I'm bad at speaking mandarin of course, but thats because I don't know any 
Spanish is corrupted Portuguese 
I dunno about your spanish class, but here in Canada most people take french up til grade 9 and don't retain much
Getting elementary/highschool kids to pay attention is a losing battle
(myself included back then)
i was paying attention for sure but its not very fun just memorizing words
german or japanese
both of those are harder than spanish lol
japanese for sure
IMO
but german?
Gotta memorize all 12-billion cases & genders
I thought english and german were similarish
yeah but english has shed alot of the grammatical complexity that german retained
still it seems like an incredibly useful language
Obviously its not dealbreaker but its probably a little harder than spanish is my point
switzerland speaks it too, right? And probably some other nations
wonderous
yeah but oh well
a lot of the world speaks spanish but be real, do you actually wanna live in those nations
I dunno some of them seem pretty alright
as does lvstri
idk about the graphics development industry in el salvador
Not the country I was thinking of
can't name one place that speaks spanish that I'd wanna live in
they're also not shitty (and simultaneously peaceful) enough to be the kind of place you can chill in an enclave being instant top 1% just by setting foot there
Don't you already live in one 
I think you have as many spanish speakers as canada has french speakers
we should start an outer heaven style insurgancy and make graphicsville or smth
wasn't the people's temple in some shitty south american country
And we are a francophone country
doing exactly that
what place?
the USA
We have an official language?
as of 1 year ago
One year ago was a different administration yes?
no it was the same one
Huh
actually maybe less than a year ago
No?
there are more spanish speakers in the USA than the entire population of canada
yall
I have not kept a good track on the passage of time
Grub so you are returning to Vulkan?
probably
Nice
via daxa
daxa?
an abstraction
ah
so im hoping i retain at least some convinience while ridding myself of gl cruft
Whatโs inconvenient about Vulkan?
library of alexandria required to send a mat4 to a shader without push constants
I'm not saying vulkan is a bad API, but it's hard to argue that it's convenient
idk I forgot how convenient other APIs are
Oh
Uniforms you mean
Yeah those were nice
word
and i think with vulkan, you are exposed to the swapchain images
obviously thats <1% of my motive but its a nice convenience to have that level of control
Well, I still have that
Because my uniform type thing updates a buffer on the host which is just sent to GPU every frame
So from the perspective of how I update something in the code itโs not really any different
But I did have to create that buffer
Which I just have a helper function for
And now Id use a render graph node to handle it
I had to write all that though
Thereโs a big fixed cost to getting up and running but then I think itโs not any harder to develop the graphics of the application. Jaker set Saky up to do the sky work in a 30min working session on discord that I sat in on
As an example of what I mean
is it lovely
it is
woah i can record my drums on my phone now
No, you might think you can, but you cant
well theyre e drums
i dont really know what to do with this info
heres my sloppy performance of an excerpt from #41
Growing up I had a whole recording studio in my garage basically and even then I couldn't record my acoustic set lmao it's so hard
We will have to bring all my recording gear to to GP commune 
That makes sense now
yeah
well
no fxaa impl yet
ive been "busy" (playing minecraft)
but once fxaa is in, which shouldnt take too long, I'll force yall to test my code, give the git a pretty readme, then deem it finished
something im deeply concerned with in my next project is that i have no personally compelling ideas for gameplay at the moment
i have ideas but im afraid they arent interesting enough to me to not lose motivation making them
It's definitely tough to come up with good enough ideas
Cave story 2 lmao
Just try them
How do you think I came up with ASO
It wasn't my first idea
Thats why it's super important imo to get to gameplay as soon as possible
Dave Matthews band simulator
dw, i have some awesome ideas for 2d
but im deadset on this being 3d
there is a roblox shooter game ive been playing recently and one of the classes in that has very fun movement
id have to take a video tonight and show yall
The trouble is that most game projects don't really necessitate writing from scratch
yeah
If you can actually find a game idea that is both interesting and significantly benefits from writing from scratch that's like the optimal project
But obviously like Jake is doing fine with ASO even though it's a game that could be made in an engine
So it's not required
Im sure i said this at some point earlier but whenever I start working on full fledged games theyll probably be 2d and published under my real name
which isnt something im gonna want connected to GrubStomper29
i also want to wait until much later, like last year in college
okay guys heres anti aliasing
Are you sure you got it right? it looks pretty blurry
its a novel approach
for performance, rather than only blur edges, I blur the whole screen
I suppose the aliasing is gone
now its even more gone
wait a minute
smearing artifacts?
i know im not clearing the framebuffer but Im overwriting it all, so how can there be smearing?
Are you clearing the depth buffer
you need to
yeah clearing it all fixed it but I wonder why
depth test was off 
oh yeah and for some reason almost every model is internally referred to as bistro
If it helps, pretty much all games I've made started out as me "copying" an existing game.
Underrated strat TBH
man carter beauford is a genuine wizard
I'm trying to replicate some of his licks and they seem impossible with just 4 limbs
especially how hes able to control the hi hat and double bass together
probably doesnt help that i cant change the pedal height for my hat
wait what
where did my lightDir in imgui go
its hardcoded again
what
where is rsm
BRUH
ig I never pulled origin after merging the branch? crap
Ah you'll figure it out
already pain
what is even going on
no ambient lighting for some reason?
yeah i have no clue whats going on
everything seems fine except for ambient lighting
everything looks a bit dark except for the sky box...
especially rsm output
whatttt
I get it now
a bunch of the final tweaks I made for rsm were never pushed to git ig
rsm is once again functional but very dark for some reason
unreasonably so (ambient only)
such a devastating blow
complaining wont fix it
gotta get to work ig
its just funny how the first time i lost code was because i messed up while using a program designed to preserve it
How we doing? Have we got it working again?
The early days of Google deep dream were wild
This work is not endorsed, supported or recommended by Bob Ross Inc. http://www.areben.com This work uses the deep learning techniques of "deep dream" and "wavenet"
When it just hallucinated anything that looked like a familiar pattern (in this case animals)
this means i havent
i have been drumming more though
Carter Beauford from the Dave Mathews Band in the studio recording the drums to Tripping Billies. From his dvd "Under the Table and Drumming". Great dvd, check it out http://www.amazon.com/Alfred-Carter-Beauford-Under-Drumming/dp/0757990894
I do not own any rights, go buy the dvd! ;)
that footwork at 3:31 is awesome and fun
I'm also tempted to buy a second splash cymbal
i currently have 1 ride, 2 crash, 1 splash, and 1 china boy
all this and i still only have 3 toms 
yeah
im interested in a 8 inch addition to the rack
other than that id rather add more drum types than just drums
id love a timbale, jamblock, and cowbell
after that we get into second ride, third splash, fifth tom territory where im made of money
all acoustic, of course. I'm not investing that much for it all to be electric