#GrubStomper29's OpenGL Sandbox

1 messages ยท Page 8 of 1

echo token
#

yep I made the cutoff

#

gen z

gilded shell
#

alpha kids are screwed

#

or not

#

only time will tell

kind sparrow
#

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

gilded shell
#

theyll go back up though

kind sparrow
#

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

gilded shell
#

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

kind sparrow
#

I'm holding out hope to save my slice of traditional familial American culture

gilded shell
#

switzerland looks georgous but it doesnt have the benefit of eu laws

kind sparrow
#

The UK has major social issues too probably not any less tumultuous of a place to be than here

gilded shell
#

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

plain mantle
#

Cutoff for gen Z is 97, I was born before that lmao

plain mantle
#

You get to keep the same language and timezone

gilded shell
#

but you have to live in canada

junior sparrow
plain mantle
junior sparrow
#

But be prepared to learn a language

gilded shell
#

north europe could be cool

junior sparrow
gilded shell
#

both have good nature but im concerned about the concrete cube steriotype

junior sparrow
#

The commie blocks are not rampant at all

#

At least here

gilded shell
#

i see

#

ill add it to the list

junior sparrow
#

There are some blocks with apartments but nothing like depressing grey commie blocks stereotype

gilded shell
#

alright

ornate moss
#

Same here in Poland

night shoal
#

you get these in any other country too btw

gilded shell
#

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

plain mantle
#

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

gilded shell
#

yeah

#

im also interested in how they matched cgi lighting with the set lighting so well

plain mantle
#

In case they need to match it with reshoots later

gilded shell
#

something seems missing...

night shoal
#

try waybackmachine

gilded shell
#

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)

junior sparrow
#

I don't think there was some bdrf used there KEKW

junior sparrow
gilded shell
#

but i do think they used a brdf for the direct lighting

plain mantle
#

Are we sure it wasn't just blinn-phong?

gilded shell
#

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

gilded shell
night shoal
#

you could probably just reach out to those people from back the and just ask

gilded shell
#

possibly but this isnt for much real purpose besides curiosity

gilded shell
#

@kind sparrow i am once again asking you to watch jurassic park

kind sparrow
#

The original?

#

I forget which one you asked me to watch

gilded shell
#

yesh the original

kind sparrow
#

I've seen it

gilded shell
#

oh sweet

#

this had everything i wanted to know

#

i was right about cook torrance being used in late 90s renders but not jp

gilded shell
#

i dont want to watch instagram reels anymore

plain mantle
#

They suck ass generally

gilded shell
#

theyre not funny anymore its just showing me various forms of ragebait and hopelessnessmaxxing

plain mantle
#

lots of AI slop too

#

My stream is live in 30 mins if you want wholesome content ๐Ÿ‘€

gilded shell
plain mantle
#

nah ASO

#

I'll keep cave story for a future stream

gilded shell
#

nah

#

best you play it alone

#

i might join in for a bit

gilded shell
#

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

gilded shell
#

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

night shoal
#

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

gilded shell
#

alright

gilded shell
#

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

kind sparrow
#

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

echo token
#

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

gilded shell
#

best souvenir ever

#

I'm home now

gilded shell
#

pbr is on git if yall wanna test it btw

gilded shell
#

The filament doc DOES explain why theres no specular denominator

gilded shell
#

why not use 16 bit unorm?

plain mantle
#

There is of course another option...

gilded shell
#

half float? is that 16F

plain mantle
#

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

gilded shell
#

i believe filament does do that

plain mantle
gilded shell
#

interesting

plain mantle
#

32f is a full float

#

And 64 is a double

gilded shell
#

why would half float be better at doing unorm's only job?

plain mantle
gilded shell
#

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

plain mantle
gilded shell
#

true

#

ill manage

#

i think this is my first time making a cubemap with gl dsa actually

plain mantle
#

Relevant reading

gilded shell
#

all the logl samples seem to lack any glTexStorage

plain mantle
#

Yeah they are 3.3

#

TextureStorage is 4.x iirc

gilded shell
#

right but I thought you still had to specify storage pre dsa too

plain mantle
#

Nah texImage* creates the storage iirc

gilded shell
#

ah i see

#

i assume im using storage3D for this, like this

plain mantle
#

Read the docsโ„ข froge

gilded shell
#

fendevel has once again saved me from that

plain mantle
#

Wait...

#

They create it with storage2D?

gilded shell
#

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

gilded shell
#

every day i get closer to switching to linux

#

rust anticheat is probably the only thing keeping me right now

plain mantle
gilded shell
#

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

plain mantle
#

Yeah my players are on windows

#

I feel like I should build and test there

gilded shell
#

there are probably tons of apps i can use for windows debloat/privacy

plain mantle
#

Yeah but I should have to

#

All that fucking around is what you expect from linux

gilded shell
#

windows updates probably screw with that, i wonder if i can safely not update windows

plain mantle
#

If I have to do it on windows I may as well just make the switch

gilded shell
plain mantle
#

It's real but it's also a psyop

echo token
#

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"

plain mantle
#

I've found manjaro is pretty OK

#

Not ready to switch fully yet

echo token
#

I like sharex and paint.net too much to switch

#

that's about it though

gilded shell
#

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

gilded shell
#
    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

gilded shell
#

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

plain mantle
gilded shell
#

otherwise not much else

plain mantle
#

Are you planning on using your RSM for LPV?

gilded shell
#

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

gilded shell
#

that is the correct way

#

i dont wanna waste the cubemap code i wrote so i think im gonna add a skybox tonight

gilded shell
#

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

gilded shell
#

sync error?

#

ill work on it tmrw night

#

the brain fog is astounding

gilded shell
#

looking good

#

I forgot depth writes are disabled when depth testing is off

plain mantle
#

Just needs a lil' antialiasing

gilded shell
#

fs

gilded shell
#

@plain mantle

plain mantle
#

Nice tune, did you write it?

gilded shell
#

Nah more ear training

#

I wish lol

#
#41

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...

โ–ถ Play video
#

Next I think I should try the bridge portion at 1:10

plain mantle
#

Cool, great work!

gilded shell
#

nvm, I cant work on this song anymore unless i buy fl studio lol

plain mantle
gilded shell
#

no the trial version just doesnt let you open project files

#

so you get one shot then youre done like ive been doing

plain mantle
#

Have you tried Reaper? Thats what I use

gilded shell
plain mantle
#

Its basically pay if you want

#

The free version has a nag screen but otherwise no limitations

gilded shell
#

i see

#

ill consider it when im a little better at this thing

gilded shell
#

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

gilded shell
#

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 ๐Ÿ™‚

plain mantle
gilded shell
#

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

kind sparrow
#

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

gilded shell
#

a niave impl will also have light leakage

#

idk if that affects your visibility needs

#

you can raytrace occlusion or use ssao

night shoal
#

jake answered it already, ididnotread

gilded shell
#

i dont think you can use both a shadow sampler and normal sampler tho

night shoal
#

why not

#

glBindSampler+glBindTextureUnit twice, you are just reading too

gilded shell
#

"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

night shoal
#

what you quoted doesnt contradict that

#

you create sampler and texture separately

#
glBindSampler(normalSampler, 0);
glBindTextureUnit(shadowTexture, 0);
glBindSampler(shadowSampler, 1);
glBindTextureUnit(shadowTexture, 1);
gilded shell
#

right but the depth comparison mode is a texture parameter

night shoal
#

no

gilded shell
#

can you set it via sampler?

night shoal
#

i would very much think so, time to consult the speck

gilded shell
#

yes

#

yay

gilded shell
#

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

gilded shell
#

@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

night shoal
#

you just dont divide by w

gilded shell
#

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

gilded shell
#

Are you seeing what I'm seeing? : )

gilded shell
#

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

gilded shell
#

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

kind sparrow
#

cool

#

I don't see what's wrong with the last one lol

gilded shell
#

you can barely tell there's gi

plain mantle
kind sparrow
#

The 2nd one looks more realistic to me

#

But idk what details you're comparing against

gilded shell
#

just because its not as dark

#

the shadowed areas look less flat in the unaltered version

plain mantle
#

You should try LPV, it builds on RSM

gilded shell
gilded shell
plain mantle
gilded shell
#

Ok

#

i honestly dont want to spend much longer on lighting than i have to

plain mantle
# gilded shell

Yeah it looks like it's hitting the right places but it's too dark

gilded shell
#

yeah

plain mantle
#

What if you multiply by pi KEKW

kind sparrow
#

Now you're thinking like a physicist

gilded shell
#

What if I generate real point lights with shadow maps

#

and those have rsm

#

2nd bounce, 5 minutes and 100gb per frame

plain mantle
#

What if you generated virtual point lights from your RSM

#

And stuffed them into some kinda volume...

#

Then you propagate the light....

gilded shell
#

heres irradiance * pi

plain mantle
#

Honestly looks way better

gilded shell
#

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

gilded shell
plain mantle
#

You keep saying kernal... it's kernel

gilded shell
#

oops

kind sparrow
gilded shell
#

you have my attention

kind sparrow
#

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

gilded shell
# gilded shell

i doubt theres anything wrong with not multiplying by pi; its just so dark because only 1 gi bounce

plain mantle
#

I have a bunch of random PIs in my SH code

gilded shell
#

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

plain mantle
#

Are all the samples weighted equally?

gilded shell
#

no

#

i believe samples further from the frag are weighed heavier

#

that might explain it

plain mantle
#

How does sampling an RSM work? I only implemented it in the context of doing LPV

gilded shell
#

you sample the rsm texture and treat each sample like a directional point light

#

importance sampling looks like this

#

further samples are weighed heavier

plain mantle
#

That seems like alot of samples

gilded shell
#

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

plain mantle
#

I see why they invented LPV

gilded shell
#

yeah

#

each sample is 3 texture reads

gilded shell
plain mantle
#

Yeah for lpv it's as simple as evaluating a spherical harmonic to get the irradiance

#

So 3 texture reads total

gilded shell
#

yeah

#

jaker's suggestion to downsample the textures will probably help a lot

plain mantle
#

Yeah that's a good start

#

It will probably reduce noise too

gilded shell
#

yeah

#

idk about spatiotemporal denoising though

#

if theres a library I can easily drop in then sure but i dont want to write one

plain mantle
#

Make sure you adjust the texel snapping for the downsampled res

gilded shell
#

theres also the half resolution temporal optimization, which is probably around 4x faster

night shoal
gilded shell
#

@plain mantle apparently ive had reaper installed for quite some time

plain mantle
#

Yeah the screen does nothing but make you wait like 5 seconds

gilded shell
#

yeah and ironically its one of the most compelling ways to make me buy something

plain mantle
#

Other (paid) software makes you wait more than 5 seconds just because its slow KEKW

gilded shell
#

fair

#

have you tried fl? @plain mantle

plain mantle
#

Nah I have not

gilded shell
#

i see

gilded shell
#

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

gilded shell
#

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

gilded shell
#

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

gilded shell
#

im also working on slowly adding in some ambient light

#

a hemisphere for the sky

gilded shell
#

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

gilded shell
#

I dont think im gonna get results im happy with unless i have some path tracer to compare with

gilded shell
#

us route 50 was paved by adolf hitler who designed it to maximize fuel efficiency by ensuring your car never moves

west trail
#

Where can I get whatever you're on

night shoal
#

link is in the very first post

gilded shell
#

its such a terrible road

gilded shell
#

theres a bunch of old nintendo spec online for the gamecube

#

invaluable for the next project

gilded shell
#

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...

โ–ถ Play video
plain mantle
gilded shell
#

probably a bad comparison since im essentially covering other peoples creations but I think im much better than when I started with this lol:

plain mantle
# gilded shell this wouldve been the basis (intro having came from 6:43) https://youtu.be/p7wAo...

I never realized that part in All Along the Watchtower actually sounds a lot like Smooth Criminal KEKW 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...

โ–ถ Play video
gilded shell
gilded shell
#

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

night shoal
#

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

gilded shell
#

I know that

night shoal
#

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

gilded shell
#

That makes sense

night shoal
#

its like when you ask which language to use to start your opengl journey, any language works you are comfy with

gilded shell
#

but I've personally still never seen a use for inheritance

#

probly since my project complexity is sub zero

night shoal
#

oop is not just about inheritance

gilded shell
#

for sure

night shoal
#

best example for inheritance are retained mode ui libs/frameworks, there it makes sense even

#

game entity wise not so much

gilded shell
#

Maybe I could inherit from those std exceptions and make my own

night shoal
#

you could and thats a wise idea too

gilded shell
#

Maybe I should actually throw exceptions ๐Ÿค”

night shoal
#

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

gilded shell
#

I'll def need better debug and editor features next project around

night shoal
#

yeah, same

gilded shell
#

nsight and rd should be back with full features since i plan to use daxa

night shoal
#

frustum visualizations for all of them, camera, shadow, shadow cascades, light/probe spheres/cones

gilded shell
#

not much of that with gcn styled renders

night shoal
#

gcn styled?

gilded shell
#

but stuff like blasting debug geo to the gpu would be nice

gilded shell
night shoal
#

ah

gilded shell
#

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

night shoal
#

i have no interest in/clue about those platforms

gilded shell
#

okay lol

gilded shell
#

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

plain mantle
#

I use spherical cascades so I dither the radius

gilded shell
#

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

gilded shell
#

this isnt fun

gilded shell
#

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
gilded shell
#

idk how much longer i can avoid fixing oit...

#

i think instead ill look at other scenes with rsm

nimble venture
nimble venture
#

Thanks, long time lurker, first time poster๐Ÿ˜„

haughty shoal
#

I can't wait to render something like bistro

#

soon

#

looking really nice!

gilded shell
#

Thanks!

#

a bunch of new ppl in the thread and this project is on like its last month

haughty shoal
#

what's next

#

I think I was following it before I left discord for a bit

gilded shell
#

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

haughty shoal
#

I'm on my third rewrite of my vulkan thing

#

so I cannot judge you

#

this is the final one though

gilded shell
haughty shoal
#

nice

gilded shell
#

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

haughty shoal
#

your graphics are better than gamecube graphics though

#

you mean gamecube artistic style?

gilded shell
#

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

plain mantle
gilded shell
plain mantle
#

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

gilded shell
#

probably fxaa then

#

msaa with deferred sounds like a huge perf sink

plain mantle
#

I dunno I've never tried it

gilded shell
#

i cant see how it would be any different than super sampling

plain mantle
#

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

gilded shell
#

i wonder if anything in this project was the first time it was done

#

first person to do all this withour implementing moving objects ๐Ÿ˜ฌ

echo token
#

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

gilded shell
#

yeah

plain mantle
#

Its much better than no-AA imo

#

but yeah its obviously not as good as the glory of MSAA

gilded shell
#

yeah msaa is great

#

but not deferred

plain mantle
#

Deferred doesn't make as much sense these days IMO

#

So we should bring back MSAA too

#

Deferred can be very bandwidth intensive

gilded shell
#

it definitely does with 200 sample RSM

gilded shell
#

method acting but for coding retro graphics

haughty shoal
#

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

runic creek
#

Looks gorgeous

gilded shell
gilded shell
runic creek
#

Seems rsm can do multi bounce too ?

gilded shell
#

unless you drastically extend the technique

junior sparrow
# runic creek Honestly wish I had an idea how RSM worked, Iโ€™m thinking about just doing svogi ...

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

gilded shell
#

Yeah you just sample the shadow map texels as light sources

#

This is a very good explanation by our very own Jaker

#

I can also share code if you'd like

runic creek
#

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

gilded shell
#

rsm is the basis of light propogation volumes

#

you could look into that

runic creek
#

Yeah tbh if Iโ€™m gonna mess with volume textures I may as well do voxel cone tracing

gilded shell
#

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

junior sparrow
#

have auto exposure to compensate for this ๐Ÿ˜ˆ

gilded shell
#

any shadows cast from far above, like the shadow of a building typically recieves 0 light from rsm

echo token
#

I looked into VCT in the past but I never quite found a voxel building setup I was pleased with

gilded shell
#

gi discussion without 3 letter acronym challenge

echo token
#

4 letter acronyms are also available

junior sparrow
gilded shell
#

lol

#

virtual vs variance

echo token
#

what's the R? reflection vs. radiance?

#

I must now publish a paper on subsurface reflections

junior sparrow
#

refraction

runic creek
#

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

gilded shell
#

guys

#

do i have to fix oit

plain mantle
#

I never bothered implementing OIT KEKW

gilded shell
#

none

plain mantle
#

It's your project you decide what is necessary

gilded shell
#

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

gilded shell
#

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

gilded shell
#

uhhhh

#

how in the world do I get the default framebuffer texture from sdl2

plain mantle
#

the default framebuffer isn't a texture

gilded shell
#

oh

#

im screwed

#

boy i cant wait to be back to vulkan

plain mantle
#

you can use a texture as framebuffer storage but not all framebuffers have texture storage

haughty shoal
#

you can render to a draw image in opengl

#

I have done it

gilded shell
#

well

#

I have options here

haughty shoal
#

that's how CSM works right

#

only it's a depth buffer I guess

gilded shell
#

yeah

haughty shoal
#

in that case

plain mantle
#

I think he wants to sample the default framebuffer no?

haughty shoal
#

just want to sample an image right?

#

I don't know how this works in openg I guess, sorry

gilded shell
#

Either,

  1. I stick with compute and use a different framebuffer then at the very end blit to framebuffer 0
  2. Try to use a fullscreen pass instead (probably still not possible to read from the framebuffer texture)
  3. 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

gilded shell
haughty shoal
#

I do 1. in vulkan

#

blit to the swapchain image

#

at the very end

gilded shell
#

3 seems most efficient

haughty shoal
#

I do that with my software raster, my graphics pipeline and about to do it with my compute render

gilded shell
#

2 birds with one stone

#

let me go delete this wonderful shader I was crafting

#

it was so sexy...

haughty shoal
#

interesting

#

I never used memory barriers in OpenGL

#

you stick those in your shader hrm

plain mantle
#

I'm doing 3

#

well kinda

#

I use different compositing techniques depending on the selected graphics options

gilded shell
#

now for the million dollar question

#

probably a no

#

can I read from a framebuffer texture that I'm currently rendering too

plain mantle
#

yeah absolutely

#

you just need to be careful

#

wait do you mean in the fragment shader or compute

gilded shell
#

frag

plain mantle
#

explain what you wanna do

gilded shell
#

I have my framebuffer, with its color texture

plain mantle
#

yea

gilded shell
#

im sampling that in the frag shader

#

vanilla ole sampler2d

plain mantle
#

yep

gilded shell
#

while rendering to it

plain mantle
#

yeah I think thats UB actually

gilded shell
#

wow okay

#

this is painful

plain mantle
#

well there is an extension

gilded shell
#

you have my attention

plain mantle
#

trying to remember the name

gilded shell
#

this wouldnt be a problem if I could sample the default framebuffer texture

#

thats so annoying

gilded shell
#

is this esoteric or widely supported

kind sparrow
#

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

gilded shell
#

lets give it a try

plain mantle
#

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

gilded shell
#

oh yeah

plain mantle
#

but like thats not an opengl specific thing

#

you wouldn't be able to do it in vulkan either afaik

gilded shell
#

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

plain mantle
#

why not just make another FB?

gilded shell
#

huge memory waste

plain mantle
#

define huge

gilded shell
#

2 bytes or more

#

ha

plain mantle
#

I have several fbos allocated at once and I run on a 512MB 9800GTX

#

how much memory does your GPU have?

gilded shell
#

probably 8 gigs idk

plain mantle
#

yeah I wouldn't worry about the memory cost of one extra fbo

gilded shell
plain mantle
gilded shell
#

yeah I thought so

plain mantle
#

but it does run

gilded shell
#

actually thats an obvious no

#

no way nv mesh shader is on that

plain mantle
#

its GL 3.3 max

kind sparrow
#

If it's not even an MSAA framebuffer it's irrelevant

gilded shell
plain mantle
gilded shell
#

i see

#

well

plain mantle
#

do the math

#

what resolution you at?

gilded shell
#

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

plain mantle
gilded shell
#

alright

plain mantle
gilded shell
#

ill bite the bullet

#

aaStagingFb here we come

plain mantle
#

I think you can handle 4.45 MB

gilded shell
#

we will never recover from these losses...

#

I think 10% of main.cpp is creating framebuffers

#

this code is so bad ๐Ÿ˜ญ

plain mantle
gilded shell
#

the problem with getting better at coding is that the code you wrote when you were worse is still there

plain mantle
#

You just leave it in until you need to replace it

gilded shell
#

but seriously why are all my framebuffers rgba16f

#

who needs this precision

#

theyre not hdr or anything

plain mantle
gilded shell
#

arent modern monitors capped at 8 bit color

plain mantle
gilded shell
#

8 bit components

#

isnt eyesight capped at that tho

plain mantle
gilded shell
#

wow okay

plain mantle
#

Stick to 8bit presentation for now though, HDR output is a can of worms

gilded shell
#

not like i can test that, I dont have an hdr monitor

plain mantle
#

Internal HDR has been done for decades though

#

with tonemapping and such

gilded shell
#

my left eye sees things palpably more red than my right

plain mantle
#

Go see a doctor

gilded shell
#

nah i got built in 3d glasses

plain mantle
#

most of my internal buffers are GL_R11F_G11F_B10F, then final output is whatever the default framebuffer is

#

usually 8 bit

gilded shell
#

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

plain mantle
#

but soon we will finally kill the evil jaggies

gilded shell
#

tomorrow maybe

#

i shouldnt touch this past 1 am

#

nothing good can happen

gilded shell
#

windows doesnt work

#

cant even change my lock screen

gilded shell
#

apparently this issue has existed on the os for 3+ years

#

they should add a copilot llm to file explorer instead of fixing this

junior sparrow
#

real

#

today I was fighting folder sharing

gilded shell
junior sparrow
#

investor money

gilded shell
#

ive never seen anyone use them in person besides midwits cheating on essays

junior sparrow
#

I had some people vibe code their whole high school thesis and the project

gilded shell
#

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

junior sparrow
#

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

gilded shell
#

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

junior sparrow
#

their problem

gilded shell
#

believe me, it was

junior sparrow
#

Less competition for you

gilded shell
junior sparrow
#

high school and college students are getting sniped by llms the same way as the kids with tiktok and cocomelon on their ipads

gilded shell
#

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

junior sparrow
#

๐Ÿ’€

gilded shell
#

thats not a joke btw, i am required to take a diversity class

junior sparrow
#

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

gilded shell
#

word

gilded shell
echo token
#

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

gilded shell
#

yeah

haughty shoal
# gilded shell ive never seen anyone use them in person besides midwits cheating on essays

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.

junior sparrow
#

That's why I use it for web dev KEKW

haughty shoal
#

Itโ€™s great at that

#

Itโ€™s basically a fantastic code generator

#

And a super linter

junior sparrow
#

But my work stuff is hell nah. It would need to get through the whole base and will get aneurysm while doing it

haughty shoal
#

Engineers who donโ€™t adapt will lose their jobs and will have trouble finding new ones.

junior sparrow
#

It's quite sad that this is a reality

gilded shell
#

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

haughty shoal
# junior sparrow It's quite sad that this is a reality

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

junior sparrow
#

I know my fair share of exactly that

#

I tried throwing AI at it but couldn't solve it

haughty shoal
#

Yeah thatโ€™s fair

junior sparrow
#

But tbf I am dealing with quite dogshit level codebase and nobody has a clue how it works

haughty shoal
#

I donโ€™t want to derail Grubs thread too much, itโ€™s very good with what we use at work

kind sparrow
#

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

plain mantle
#

We all had to do breadth requirements, I took german for a semester, I was not prepared for how difficult is was kekkedsadge

#

I also had to take "Ethics for software development"

#

Which is a course apparently everyone in the tech industry has forgotten taking bleaker_kekw

gilded shell
#

i am incredibly bad at foreign language

plain mantle
#

thats why you take a course

gilded shell
plain mantle
#

I'm bad at speaking mandarin of course, but thats because I don't know any smart

gilded shell
#

maybe i had bad hs teachers?

#

or bc spanish is a terrible language

plain mantle
#

Spanish is corrupted Portuguese KEKW

gilded shell
#

but i dont want to just memorize words

#

thats pain

plain mantle
#

I dunno about your spanish class, but here in Canada most people take french up til grade 9 and don't retain much

gilded shell
#

yeah

#

maybe if it were a language im actually interested in

plain mantle
#

Getting elementary/highschool kids to pay attention is a losing battle

#

(myself included back then)

gilded shell
#

i was paying attention for sure but its not very fun just memorizing words

gilded shell
plain mantle
#

both of those are harder than spanish lol

gilded shell
#

japanese for sure

plain mantle
#

IMO

gilded shell
#

but german?

plain mantle
#

Gotta memorize all 12-billion cases & genders

gilded shell
#

I thought english and german were similarish

plain mantle
#

yeah but english has shed alot of the grammatical complexity that german retained

gilded shell
#

still it seems like an incredibly useful language

plain mantle
#

Obviously its not dealbreaker but its probably a little harder than spanish is my point

gilded shell
#

switzerland speaks it too, right? And probably some other nations

plain mantle
#

Austria too

#

but swiss german is weird AF

gilded shell
#

wonderous

#

yeah but oh well

#

a lot of the world speaks spanish but be real, do you actually wanna live in those nations

plain mantle
#

I dunno some of them seem pretty alright

echo token
#

vblanco has told some horror stories about spain

#

it's all downhill compared to that

gilded shell
#

as does lvstri

gilded shell
plain mantle
#

Not the country I was thinking of

echo token
#

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

plain mantle
#

Don't you already live in one KEKW

echo token
#

no

#

english is the official language as of like 3 years ago

#

1 year ago*

plain mantle
#

I think you have as many spanish speakers as canada has french speakers

gilded shell
#

we should start an outer heaven style insurgancy and make graphicsville or smth

echo token
#

wasn't the people's temple in some shitty south american country

plain mantle
#

And we are a francophone country

echo token
#

doing exactly that

haughty shoal
echo token
#

the USA

haughty shoal
#

We have an official language?

echo token
#

as of 1 year ago

haughty shoal
#

One year ago was a different administration yes?

echo token
#

no it was the same one

haughty shoal
#

Huh

echo token
#

actually maybe less than a year ago

haughty shoal
#

No?

plain mantle
#

there are more spanish speakers in the USA than the entire population of canada

gilded shell
#

yall

echo token
#

I have not kept a good track on the passage of time

haughty shoal
gilded shell
#

probably

haughty shoal
#

Nice

gilded shell
#

via daxa

plain mantle
#

daxa?

gilded shell
#

an abstraction

plain mantle
#

ah

gilded shell
#

so im hoping i retain at least some convinience while ridding myself of gl cruft

haughty shoal
#

Whatโ€™s inconvenient about Vulkan?

gilded shell
#

library of alexandria required to send a mat4 to a shader without push constants

plain mantle
#

I'm not saying vulkan is a bad API, but it's hard to argue that it's convenient

haughty shoal
#

idk I forgot how convenient other APIs are

#

Oh

#

Uniforms you mean

#

Yeah those were nice

gilded shell
#

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

haughty shoal
#

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

junior sparrow
#

I have been summoned

gilded shell
junior sparrow
#

it is

gilded shell
#

woah i can record my drums on my phone now

plain mantle
#

No, you might think you can, but you cant

gilded shell
#

well theyre e drums

#

i dont really know what to do with this info

#

heres my sloppy performance of an excerpt from #41

kind sparrow
#

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

plain mantle
#

We will have to bring all my recording gear to to GP commune KEKW

plain mantle
gilded shell
#

yeah

gilded shell
#

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

gilded shell
#

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

kind sparrow
#

It's definitely tough to come up with good enough ideas

plain mantle
#

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

gilded shell
#

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

kind sparrow
#

The trouble is that most game projects don't really necessitate writing from scratch

gilded shell
#

yeah

kind sparrow
#

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

gilded shell
#

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

gilded shell
gilded shell
#

okay guys heres anti aliasing

plain mantle
#

Are you sure you got it right? it looks pretty blurry

gilded shell
#

its a novel approach

#

for performance, rather than only blur edges, I blur the whole screen

plain mantle
#

I suppose the aliasing is gone

gilded shell
#

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?

plain mantle
#

you need to

gilded shell
#

yeah clearing it all fixed it but I wonder why

#

depth test was off frogshrug

#

oh yeah and for some reason almost every model is internally referred to as bistro

nimble venture
gilded shell
#

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

gilded shell
#

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

plain mantle
#

Wait what happened?

#

You lose work?

gilded shell
#

nothing lost

#

just

#

babies first merge conflicts

plain mantle
#

Ah you'll figure it out

gilded shell
#

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

plain mantle
#

How we doing? Have we got it working again?

gilded shell
kind sparrow
#

The early days of Google deep dream were wild

#

When it just hallucinated anything that looked like a familiar pattern (in this case animals)

gilded shell
#

i have been drumming more though

#

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 KEKW

kind sparrow
#

I only ever had 3 toms

#

Then again I only ever had one crash, one china, one ride

gilded shell
#

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