#Rosy
1 messages · Page 19 of 1
You kinda look like Richard stallman
Not really lol
unless you just mean having a grey beard
Stallman wishes he had that jawline lol
lol, I might trade it for his lisp skills
well I read the intro to the book and I'm now a game engine physics expert, nice
I'm surprised the only required math you have to know for the book is basic trig
I'm going to keep going with my fake physics camera controls atm, but I think I should read that book front to cover and build a custom physics engine
while I read it
in my project idk
I'm going to keep going with the game
it starts with a particle physics thing, and i want particles at some point
When I lurk in the Physics Programming discord server the people there throw around all sorts of terms that I don't understand and so it seems like physics in modern games are much more complicated. But, yeah, the math in that book which I guess is more representative of physics in games 20 years ago is pretty accessible.
idk I don't think classical physics have changed in the last 20 years though
so should be fine
🙂
The "particles" it starts with just means that there is a single position and no rotations. So that's enough for my ball and bricks game, for example. But I guess you need rotation for your skimmers.
it's probably like strength training, the human body hasn't changed much in the last 10,000 years, so I'm not sure there's like modern techniques that will do anything better than just picking up a barbell like they did 60 years ago
hrm
they have invented better steroids in the last 60 years
my game needs rotations, I already have rotations, but it's all fake fake
steroids don't do much, it's such a meme
your average joe taking steroids and going to the gym will never get close to what elite body builders look like before they took steroids
maybe you want rotations if you want your bricks to ever fall
or explode or break into pieces or something
my camera actually doesn't need any physics anymore since I'm working on just putting it on a rail on the track
I'm not sure that I completely agree with your premise. In the realm of graphics where I do know stuff the techniques have changed quite a bit over the last 20 years, and even though some of that change is just due to hardware getting faster so we that can afford to do stuff that we already knew how to do there is a lot of new techniques that have been discovered that make things better even though it doesn't fundamentally change the classic rendering equation from 1986.
I kind of imagine that physics is the same: It's not the fundamentals or the fundamental understanding that I predict has changed, but I bet there are lots of new techniques that have been figured out.
But, heh, it's hard enough for me to keep up with graphics so I'm just speculating.
and I'll probably create the track such I get rid of those hard angles where the player's skimmer briefly disappears behind
that's fair
I kind of feel the same way about graphics techniques though in a lot of ways
ok with the exception of PBR I guess
Yeah... I really wanted to try and do all the physics myself just so that I could get actual experience doing it once, and that was really fun (and really rewarding). But if I ever decided to do something more complicated I think I would just use Jolt. The brick game was just something I decided to do that was feasible as a simple thing but it's not really my dream game or anything, so I don't think I'll expand the physics much. (Well, with one exception: There are lots of animations I have with just constant velocity that I wish had acceleration so I will maybe revisit that one day, but for the actual simulation with collision detection and response I think what I have is probably good enough for me heh.)
if I made a game that looks as nice games looked and felt like a game from 20 years ago, you know like Oblivion, Battlefield 3, etc I'd be stoked. although I realize that those had massive budgets and people working on them
It's hard to believe, but it's actually approaching 20 years since I got my first job in the games industry (and doing graphics)! 👴
It's funny/sad reading people in this server talk about games from that time like they're ancient and I think "wait.... are they?" lol
yeah
a coworker asked me not too long ago while talking about Nirvana if I ever heard of Soundgarden
haha
I was floored, like what, of course I have, they were all over the radio and MTV in...oh right, early 1990s
so you work in the industry?
you shipped some titles?
I actually do again, as of 3 weeks ago! But I was out for about 10 years, although kind of adjacent.
nice
I wonder what people who work on this for a living think about this server sometimes, although I know a number of people on here do work in it
Oh, yeah. Umm, let's see:
Bolt, Toy Story 3, Cars 2, Disney Infinity 1, 2, and 3
(I worked for Disney at Avalanche Software, but after Disney shut us down I decided to try something else rather than stay when it was resurrected by Warner Bros)
Games, based on the movies (except for Disney Infinity)
Haha it doesn't seem like it, but I guess so. Look, it's me talking about it at SIGGRAPH 2010: https://advances.realtimerendering.com/s2010/index.html
what could I tell anyone they don't already know
I mentor jr engineers
I know enough to do that I guess
you'd be surprised
the curse is that things you already know seem obvious
hrm my camera idea of following a rail on the track falls apart when the skimmer turns around and goes the wrong way now that I think about it
that's a problem with the physics too, there's collision problem when the vehicle goes reverse up an incline it goes through the track, because the math currently assumes a one way direction
it's dumb
I'll make it work in one direction and then fix it, it doesn't work at all right now
Is your intent to allow the skimmer to go the wrong way and in reverse?
I guess I was wondering whether you would like to prevent it from happening but just don't have code yet to do that, or whether you ultimately would like to allow it
you can go in reverse yes
well I think being able to go in reverse is ok in case you get stuck and need to do a turn about or something, and in that case I need to be able to handle it generally I think, even if I put some kind of block in place for traveling in the reverse direction
Hmm, yeah, that makes sense
I'm not going to worry about it right now though, since it is a bit of an edge case
but it's just highlighting how fake my physics are
well they are
Doesn't matter if it works for the game and is fun 🙂
true!
My favorite xkcd of all time lol
it's pretty good
ok my first attempt at the on the rails camera will be just apply the player's forward velocity also to the camera, but the camera is just oriented by using the forward, up, and side vectors of the current track it's over, and it's just hovering over the current track by some scalar value up the track point's normal
when you add lap checkpoints you'll know if the skimmer is going the wrong way
yeah
because the next checkpoint it hits will be smaller
the track points all have curveu values which range from 0 to 1
they're generated by houdini
When the Curve U checkbox is on, create an attribute on the generated point(s) containing the fractional position (between 0 and 1) along the curve where the point was found. For example, if the point was extracted from one-third of the way along the curve, the node would set this attribute to 0.33 on the point. The default attribute name is curveu.
The main purpose of this node is to extract a ballistic projectile’s position at a given time. However, it can also be used to extract points from many curves in custom patterns for abstract effects.
houdini is so cool
I just think this isn't going to work, but I can't be paralyzed by not knowing what to do, so I just need to do something and figure out how to fix it if it is broken
this is like 4th or 5th attempt at a third party camera 😅
the most important thing I need right now is a good look at method
I'm going to work on that this weekend
just a reliable here's the camera, here's the thing look at it
I think I just need to do that in the camera's object space
you made that yes?
no i kinda abandoned mine because this one is a lot more feature complete
NIH?
not invented here
oh
basically not using any dependencies for anything, outside of the OS and vulkan headers
and the compiler
which ships with the c stdlib
it's good to hear from you, are you working on anything?
unfortunately im employed now lol
ohh nice
I don't know what clay is but I know the other two
oh I know
that's the zig ui library?
honestly i haven't tried using builtin translate-c yet
are you writing C?
no but last time i compiled this project i was on 0.15
Highly recommend you add a transform hierarchy. It makes so many things (like cameras) easier
my camera is made of 3 transforms
i can animate and position the pieces independently and the engine takes care of all the space translations
yeah that makes sense
I'm having a fundamental math ignorance issue with this, that I just need to resolve once and for all, is part of the plan, like given two points find a way to orient one thing so it is pointing in the direction of the other
my karts are also made of nested transforms as well. The kart itself is made of two (the rigid body and the car model), then the player doll is on top of that, and objects are attached to the player’s hands
that makes sense
I just shouldn't be struggling with this problem, I am going to like do it with pen and paper if I have to
when you drive into the TNT it makes itself a subject of the player doll’s head
if I had things in the world I could parent that would make sense for me, it definitely makes sense for you
maybe look at what glm’s QuatLookAt does?
I know how to write a look at
it's just
something is not right
with my math, a bug or something, my coordinate space
I have looked at a couple of look at approaches, so I'm just going to try and build it from first principles
C:\Users\Bjorn>clang --version
clang version 21.1.5
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Program Files\LLVM\bin
updated clang, everything builds fine
hrm time to build my look at function
it'll accept my project's location type, a position of the thing to look at and return a quad and I should be able to have any object that has that location type orient itself to look at that position. I will set up a little debug UI for it first
I will set up a little debug UI for it first
ah, i see your development workflow is the eact opposite of mine

no actually
I have written a couple of look ats and they all fail in the same way
so this is like attempt # 5 or something
but going to do it intentionally and with tooling
there must be something fucked about my coordinate space that I hadn't encountered yet since I haven't written any gltf scene loading code, just these basic meshes
although everything seems correct and I haven't written any weird coordinate/perspective code, my track looks correct, my camera moves around correctly
it's super weird
anyway I'm getting to the bottom of it
probably a math code bug
I've somehow managed to crash renderdoc
Classic
just crashes on trying to load a capture
hrmmm
let me try nsight I guess
nsight is fine
must RT related
I find Nsight alot more usable IMO
than renderdoc? wow
I dunno it just seems easier to find the event I'm looking for in Nsight
I only use renderdoc if I'm on AMD or Intel
I find there anything like the mesh viewer in renderdoc in nsight?
Nsight 100% has a mesh viewer, I use it all the time
yeah renderdoc really doesnt like rt
PIX is the one i like the most for RT debugging, but thats dx12 only
I will say renderdoc does let you look at the verts post-transform, which nsight does not
yes that's what I want to look at right now
haha, I was looking for my cube I wanted to put at the origin and couldn't find it
it was hiding
apprently I have a bug where I applied my skimmer transform to all meshes
Wait this game is using RT?
just for shadows
Ah
I bet this is actually UB
and this is why renderdoc is crashing
btw ray tracing shadows took so much less effort and heartache than a CSM
and it looks better too
100% worth it
yeah rt shadows are dead simple compared to like literally anything else
first thing that vulkan has ever done for me that has made it almost worth using
they become a little less simple when you want to support arbitrary materials. i'm still working through how I want to generate those
yeah it seems like a requirement
the API gives you the user-defined ID, and then you have to use that to look up all the object data
why do your shadows need materials?
I am going to actually add reflection and emmissive
yeah
I will need materials eventually
cutout transparency was free with CSM
I don't know of a need for cutout for me
colored shadows wouldn't've been too difficult with CSM, just kind of inefficeint
what's the thing you have that's transparent?
it works but it doesn't give me info about my ray tracing stuff so it's not that useful to me
I'm doing something to crash it and I'm sure I have a bug somewhere since I a second mesh for the first time in this game
nfi what it is
gpu-driven validation?
if you're using vulkan you have to use validation
yeah I use that
VVLs
I am not getting any validation errors
hrm
let me turn on verbose errors
nope, no validation errors
outside of the ones slang generates
they changed the UI but there is a setting in vulkan configurator that lets you eanble gpu-driven validation, which adds extra code to your shaders to detect things like out-of-bounds memory access or use of unbound descriptors
but those are slang bugs
you can also try using Nvidia Aftermath if you have an nvidia gpu, it will tell you what shader caused the crash and what kind of crash it was
nvidia doesn't crash, just renderdoc
I'll try aftermath
nvidia nsight graphics I mean
eg this one tells me I have a nullptr dereference
I'll try aftermath though
oh ok I'll try gpu validation I haven't heard of that before
nada
just the slang VVLs
which don't break anything and have been there since forever
other option would be to compile a debug build of renderdoc and see what's causing it to crash
but you'd get whatever exception or assertion is triggering in renderdoc
I will try aftermath
which could give you a clue about what you're doing
true
oh I just updated nsight to the 2025 version and it is much better
aha
it is RT
I just started commenting out code until it stopped crashing
going to just disable RT for renderdoc since it can't debug it anyways
nice ezpz
now I have renderdoc support
and
I just have actual conditional RT now
hrm but I still use the rayquery in the shader
idk
whatever
renderdoc not wanting to be a RT debugger means it kinda doesn't want to be a graphics debugger
I'd have to have a non RT shader just to support renderdoc to make this work end to end
I don't get any VVLs for my RT stuff, and nsight works
Yeah kinda stupid they wont support it imo
It sorta does, it'll play back rt calls
Just not let you inspect them the same way as raster? Idk I've never used renderdoc with rt
it just crashes renderdoc for me
all I did was add a second blas and instance
and now it crashes
works fine without renderdoc and in nsight
cool, multiple meshes now
something's fucky
why is the cube changing colors
oh I know
fixed
also figured out how to record just the game instead of my whole screen
man that was a lot of work just to add a cube
I made it easier to add any amount of meshes though
The skimmer reminds me of a cute li'l headcrab in this video, with the debug lines looking like little legs and it hopping around like a headcrab 😂🧡
my characters are always coming out looking cute for some reason
I just made a box lol
I am trying really hard to stay focused on making progress on my goals and am resiting the urge to just write a full physics engine by following the book. I need to wait until I have some amount of something that looks like an actual game before I get side tracked into a rabbit hole that big
the big rabbit holes are the full physics engine and textures, and they're all months long projects
the other big one is gltf
everything is so simple and straightforward and then it explodes
gltfs don't explode
it's just a lot of work to NIH these
if I were to estimate, I could divide a year into quraters, the gltf and physics would take two (one each), and textures would take 2
I think textures would be more work because it's 3 formats I want and then the transcoding to basis
nooo dont write a gltf parser
if I don't I can't have gltf
export from blender in a text file the data you need with a python script and then parse that
I don't use blender
YOU WROTE YOUR OWN BLENDER TOO?????
lol
truly peak NIH
my point is more like, I use multiple tools
I don't know
I'm just going to write a gltf parser nbd
a slow json tokenizer isn't going to be hard imo
the hard thing here is the basis compression
that will work with vulkan drivers
how hard can it be
well the spec is a tome
famous last words :p
by the time I get to it I'll have written a huffman decoder for png, jpg and exr so I'll have some compression experience
compression is never a good time
is rosy open-source? i can't seem to find the repo
it's not
ic
this isn't rosy either, this is a new project I started in june
nice
it contains trade secrets
there's no trade secrets, it's just weird to open source something you don't want PRs for
idk, I don't mind sharing the code with anyone here
I just don't want it as a open source thing on github
i think he just uses maya
this isn't pq
move it to sourcehut. no more PRs 
yeah on github I'm very selective about public stuff
you're nihing texture decoding too?
well it's just I don't want any third party deps
understandable and 🇬🇱
same as that video jaker posted in #off-topic-🐸 the other day
why's that?
same as jonathon blow and casey and etc, it's just less headaches in the long run, and then I have my own stuff and I don't have to worry about versions and all the dumb stuff that comes with dependencies
o ok
idk, when I put something in public on github I want it to be "atomic" and conceptually interesting, like a library or a program that does a distinct thing
my personal engine is not novel nor particularly interesting so it doesnt show anything except my preferences and opinions, not really worth showing off or getting feedback on
this is close enough to same

what video
mfw my personal projects are the only interesting things i have 
i mean they can be valuable as a kinda portfolio stuff
it's quite handy when answering questions because I can just link some code of mine if it's something I've implemented
deccer patented flag speak, and I respect IP
yeah I just mean my regular 3D rasterizing game engine, it's just mid
maybe I just spend too much time here to even think that lmao
ye
unironically have said "oh and a 3D rendering engine" as an afterthought during job interviews lmao
rotted
i mean my path tracer is probably mid too i can't even figure out how to fix all the damn fireflies
but it's still the coolest thing i made
ok fair enough i wasted most of my time on webshit
people compare themselves against insane standards
I mean my day job is database stuff, furthest thing in the world from GP
why are u getting banned bluscreen
we need more schizomaxxing self-declared programming gods here
if you're not interviewing for a graphics job it's kinda funny how hard it is to explain the significance of anything
be the change u want to see
the most fun part is when people ask you "when are you going to be done with the project?"
my code's on github because I want the world to witness the work of a god
tbh even if it's not a graphics job, a renderer/engine is a fairly complex project just from an architecture standpoint
"so yeah this is my text renderer but really I have to rewind back to the history of the kievan rus and the settling of novgorod"
shots fired @ PQCraft
if I were interviewing someone for an engineering position on my team and I knew they had made a 3D engine I would see that more as a we share similar interests, and I'm not sure how it would otherwise signal anything more, like it wouldn't be enough to overcome a poor performance on the technical panel
our technical panel isn't hard
I almost fumbled a basic question on database indexes then turned it tf around when the interviewer asked about my personal projects
dude's eyes legit lit up
don't even care if I don't get the job because I live for that
someone read #graphics-dev on the tcpipi server 😄
we ask a cache question and we ask a bulk action with real time updates on the ui question
no tricks
I din't 
the trick is if the word "real time" sends you on a rant about guaranteed execution times, you lose
ah funny, there was some weirdo saying something weird few hours ago lol about rust people being schizzo elitists
tfw the client said "real time" and what they meant was "have it update every 5 minutes instead of a daily cron job"
yeah it's real time, it takes real time to execute
2fps is real time for the offline world
tbh technical interview questions are kinda dumb if not done properly, way more important to figure out the thought process than whether you can answer some random technical trivia from memory under pressure
i've straight up answered "no idea, i've never run into that before but here's how i'd go about looking into it" to that kind of question before and got the job
I don't know a whole lot about ray tracing, but based on my experience with using maya's arnold I think production renderers just get rid of fireflies by taking more time to render a frame
yeah idk
also fireflies don't really go away with accumulation, they just get worse
I see fireflies in arnold results unless the frame takes like minutes to render
firefly compensation is a whole thing
it be hard
I see
the fundamental question is how do you find an outlier when you don't know the full distribution
yeah nfi, if it's hard for you bluescreen probably impossible for most people tbfh lol
and when you have high variance (eg caustics), valid samples look a loot like fireflies
idk why you're saying that i'm smoothbrained 
throw a NN at it and pray?
lies lol
i want to figure out the fireflies tho
had no time the last like 6 months all my energy just went to uni shit and now i'm kinda burnt out for a bit 
but man i want to fix the renderer so i can finally start working on cool shit like volumetrics and fancy integrators
path tracing is so much fun
that sounds exciting
I got into path tracing but since I have no HWRT I just went on a month long bikeshed reading about stackless traversal and different BVH formats
all that to propogate RGB
for some reason I don't get burned out by graphics programming, it does the opposite, it recharges me, I get burned out by everything else in my life and then I do this and I feel better
and then get bored and stop
been there with cpu path tracing lol
spent like 2 months bikeshedding bvh stuff
was fun though
the random undebugable crashes I get make me want to stop
kinda why I don't want to use third party deps
yeah i'm just burned out from other stuff so i don't have the energy to pick it up 
but gp is refreshing
it really depends on a case by case basis, some deps alleviate the headache and some add more
though kinda wish i was writing rust again instead of c++,,,
I don't want to fix other peoples bugs
time to riir ig 
These crashes are something my code is doing, not my deps
But when I have to soak test for 10 minutes just to hope it reproduces it really burns me out
yeah that's fair
man i'm so glad my renderer is deterministic
makes reproducing bugs so much easier
like right now I somehow have a null descriptor access despite binding all resources every frame
but it only happens sometimes
i smell a race condition
I left the program running for an hour and it didn’t happen. Restarted and it happened 30 seconds in
yeah but no debugging or validation tool can find these
sucks
oh yeah weird vulkan state issues are a nightmare
I just get a crash from aftermath and that’s it
you run the monitor program
the thing that runs in the background?
graphics has some of the most frustrating debugging sometimes
the dump is in nsight format
osdev says hi
It’s mostly for integrating with your production crash tracing system
for uploading dumps to a server
the renderdoc crash I have isn't my application crashing renderdoc, it's renderdoc trying to open the capture it made
been there
It’s probably crashing during replay
so I just disabled RT for renderdoc and gave up
iirc my particular one was having weird initialization settings for BDA
I might have some UB though that's to blame, idk it's not causing a problem for nsight or running my app normally
bindless is nigh impossible to debug. The tooling has not caught up
I think I requested it though the ext instead of 1.2 and didn't properly tell VMA to be consistent
I luckily haven't had much trouble with bindless, you could probably enable the null descriptor option and you might at least get a visual of where it's happening
what is the null descriptor option?
one of the feature settings for bindless that makes null descriptors in your array valid, iirc it has a performance penalty so you don't want it, but you'll at least just get black samples instead of crashing
interesting
really wish it would capture info about the thread that caused the crash so I can debug it
but all you get is an address rounded to the nearest 4K
and the shader program
sometimes it gives you an IL reference in the shader but it’s pretty inaccurate
I write a null descriptor to the slot when freeing a descriptor
using the thingy domeboy linked
I don't use null descriptor but I think I use partially bound which is okay with things being null so long as you don't access them
when freeing a descriptor 
it's possible for my descriptor set to hold refs to dead images but its no big deal
I manage bindless descriptors with an index allocator
you don't need nullDescriptor then so long as you have partially_bound_bit, faster too since you don't get the checking
for me "freeing" is just recycling the index so anotehr image can write into it
to keep the fragmenting down
I use it a lot for transient buffers and resources that are tied to the output size
busted
I mix bda and buffer descriptors at random
I actually do that too tbh, my transient descriptor set allocation is too convenient for mocking things up
usually I convert things to BDA closer to when I finalize them
I have a crash that's caused by using bda though
a crash in glslang when it tries compiling my shaders
I've had a crash before where spirv-reflect just didn't consider I could get certain instructions in a certain order so I had to PR them a 2 line fix
Glslang’s #include doesn’t work
if you have certain kinds of path
I fixed it for myself in my own checkout since I’m doing something a little weird
I think I switched to glslc because I couldn't manage to get glslang to take additional header search args
does glslc not just use glslang?
99% sure it does but the glslc CLI is somehow better than using glslang directly
the cli binary from the sdk is built in release mode which means it doesn't have the checks that make it crash for me 
it does. I've had to look at the source code to figure out how to do certain things like enable debug symbols
and stuff like the option that prepends text to your shader literally builds a string that gets prepended to your loaded file before it's sent to glslang
ok, now I can start working on the orientation code
so I'm going to use that as my third party camera placeholder when I'm not in third party camera view
so I'll just start with the rotation around the y axis assuming a world up, then I'll add pitch, and then make it work with the track normals, and then have it follow the skimmer and then it should just work?
and then I'll just make that a generic look at function that just works with whatever
i can't unsee the headcrab now
I may move up wavefront obj file parsing on my timeline 😅
then you can import an actual headcrab
when I originally played hl2 I didn't think they were cute, they scared me
but I guess they are cute now
they just want to cuddle
how does sorse store skeletons
oh wait source games have weird file formats nvm, that made me think they used obj for a moment
there's the bug
ok
a sign issue I think
I had this problem in my last project too I remember now
I think I
the z fighting of the yellow and red lines makes it look like a cute walking animation
animation ✅
nice, one thing I don't need to worry about now
going to write that angle to the ui
yeah it never goes negative
auto cross_p = cross(world_forward, v_projection_to_xz);
auto sign = dot3(cross_p, world_up);
auto dot_p = dot3(v_projection_to_xz, world_forward);
auto angle = acosf(dot_p);
if (sign < 0.f) {
angle = -angle;
}
cool cool
hrm
ok now to get the other angle
the pitch as it were
had a huge bug
my quaternion form is w, x, y, z and my mat to q did x,y,z,w :(
that was the bug
a normal look at function now works
no issues with my coordinate system thank god
one time glm updated and changed the quat constructor from xyzw to wxyz. that was fun to track down
this wasn't fun at all 
like my approach at one angle at a time ran into gimbal issues
are you reinterpreting your quat struct as an array of float or something
If you accessed the fields one at a time I can't see how you'd get this bug
I'm confused how the storage order mattered here
"ideally" the user of the quat wouldn't need to know whether it's xyzw or wxyz
oh I think I see
the math was just wrong?
right because it made the quaternions incorrectly
because I copied it out of my math book
I think I was projecting my storage bug onto you
I mean I understand what it does
I understand what the trace of a matrix is
and how the construction of the quaternion works vi athe math
I just wrote the w to the w variable, and then the clang vectors have a w data member
it just happens to be the wrong one
a real oopsie daisy moment
that's my middle name
what's the origin story for your pfp?
it looks like gumby, I keep thinking is like a gumby like character
I think my brain stopped working and I can't do more right now
why does that happen
my pfp used to just be this guy, but then someone on another discord made a few edits, including the current one
https://surrealmemes.fandom.com/wiki/Orang
lol it do be looking like that
ok next thing is to add more velocity attenuation when jumping I think,
also keep forward momentum when not giving power so you can't break midair
that's a huge jump
ngl it looks super fun
if you tone it down maybe you can have like a moon level where jumping just yeets you way up
might want to have the gravity increase after a certain amount of time in the air
can help the skimmer feel more substantial
I finally started using lsp renaming in neovim, it works so great
yesterday I spent a lot of time manually prefixing my C functions and today I decied to see how good the lsp rename works and it works amazingly
just no undo
git reset is the undo
oh maybe there's an lsp undo
no there's not
as a neovim bro, you need a split keyboard too
I don't like those
: )
I have a normal logitech keyboard like a regular person
yeah
i was just joking
those split-keyboard-yt-bros, who keep typing a word once then backspacing 100 times before writing one more word correctly
the biggest drawback to neovim is really tracking global changes/sessions, it's all just buffer based
if you have some plugin or something that changes files that aren't even open there's no hope
jetbrains' tools have a local version thing, where it kind of snapshots your code in various intervals, and you can go back in time when needed, and you have not setup git or havent commited in a while, its pretty handy
and most commands just work on the current buffer
yeah local version in jetbrains has saved me so many times
same hehe
visual studio has this too with the resharper C++
yeah
hrm
i always wanted to give neovim a true and honest try for more than just 2mins, but i cant
im too stupid to start memorizing all the vim keybinds, or perhaps too old, idk
it's impossible to memorize
the way to do it is to just start with the basics
build up muscle memory
yeah
i keep going back to clion
it's just my fingers doing stuff
i owuldnt even know what to do really, when editing text "ok here i need to go to the 5th word on that line to put an a in between 4 letters of that word"
so i just go into i, and cursor there and just put the a 🙂
and not do 5w and i and whatever else vim bind you press before i
I used vim from like 2005 to 2012
and then gave up when multi cursor came out and used jetbrains IDEs for about 5 years
and then at my current job all our work is remote
yeah alt+shift+. is ❤️
ah vscode is great there
but now I'm back to neovim since june
well new to neovim
I hadn't ever used neovim
aye, so you went through the valley of pain already
yeah
and learned ze basics
neovim is much better than vim, I would never use vim
well I have been using vim for commit messages and cli stuff, I never stopped using it
for small edits
but as a main editor
no thanks
i use it for config files too, but its just cursor keys and no vim motions or whatever, dd and u at maximum heh
now I am using Neovide, which is a UI for neovim
all it does is uh fix the cntrl key and adds fancy cursor animations
and smooth scrolling
one of the problems using neovim or any editor in a shell is that shells don't like control key
yeah i heard of neovide
what are you using?
clion?
I still have this installed, I don't think I've opened it in years
ye clion and sometimes vscode
3 years 
😄
I have been paying the license all this time
yeah
i have that one too, i think its worth it
if i was using vim or any other vimlike i would probably quit jetbrains too
oh shit, I have work code on this computer, the last thing I opened in this project is from my job
😅
that's gotta go
calling your boss
this is from when were still a tiny startup
I have no idea how to open up the terminal or do anything anymore
there is a button in the bottom left corner
commit 05efa10d171977fb91a8274c711d6688410943ea (HEAD -> bt/DUCT-4130/clear_app_user_source_ids, origin/bt/DUCT-4130/clear_app_user_source_ids)
Author: Bjorn Tipling <[email protected]>
Date: Thu Mar 30 05:40:58 2023 +0000
[DUCT-4130] Add ability to clear app user source ids from support page
great
or shift shift terminal enter
windows peasant 😄
i have a vim conf but never touch it lol
it has nertree, clangd plugin and thats about it
tried nvim once, didnt feel like it
I tried running neovim on my 32GB of memory dev machine and it ooms
so I still use vim on that thing
ah thanks for reminding me
how lol
it's actually gopls that ooms
i noticed this laptop swapping despite having 19GB free ram out of 32gb
the go lsp
but it kills neovim
what's weird is that visual studio code's client that runs on the same machine also uses gopls and it doesn't die, but gopls does sometimes have problems
going to just uninstall intellij and finally cancel my license I think
pls in gopls stnds for "go, please!"
pretty UI
btop
ohh my jetbrains annual license fee is really cheap though
holy shit
it costs double what I pay
haha
it usually goes down every year, for 3 years and then you keep paying that lowest
yeah same
that's a big incentive to just keep paying the money
I'll just keep it lol
they got me
let me see what they got maybe I like something
they do provide good software 🙂
i frequently use rider, clion, webstorm and datagrip
whats neat is a license is perpetual, the annual/monthly part is for updates
iirc
that is cool
rider and clion can be used freely these days
and one or two other things of their whole suite
for non commercial stuff
yeah
i have the jetbrains suite with an education license
I'm going to try fleet
can't parse my C
I'm going to try and replace my notepad++ usage with fleet
it should have just been able to parse my C with clangd and compile_commands.json
I dont' think this editor can replace notepad++, it's a bit slow
i personally use kate + kdevelop for a text editor + ide
wouldnt surprise me if they retire fleet again
luckily a lot editors can do that
Most of the ones I know require me to press two keys for that and they may overlap with another combo and then my first select isn't a column select and then the second one is but I have then already closed the program and started cursing about it in a random Discord chat.
I can hold alt, ctrl, then press arrow keys to select multiple lines
alt + left mouse works for me for the ones i know
yeah and that, what jaker said, i also very much like alt+shift+. in jetbrains' tools, multi select on whatever is at the cursor/isselected
maybe it was alt+shift in visual studio too, my fingers just do it
depends on the keyboard schkeeme probably
alt + ctrl is what works in vs code
ive used it alot more than i expected to when i first figured it out lol
vscode default keymap is botched when you are used to vs/resharper/jetbrains-keymaps heh
ctrl+- in vscode doesnt navigate back, it zooms the ui out 😄
I hate that so much
especially since I never want code zoom in/zoom out, I set a font size when I install the IDE and that's it
I zoom in all the time because my vision went bad as I got older
I was going to make some progress and instead renamed almost everything
everything is now snake cased and prefixed with p_
I was pretty excited to use camel case when I started this project because resharper in C++ forced me to snake case and I wanted camel case, but over time I just ended up preferring snake case in C
it's beause I think I don't have any types, just functions and structs
types as Type types
fleet is terrible
I'm going to cancel my jetbrains license I don't want any of these editors
it expires soon so good timing
kinda have to avoid launching yourself off a ramp now to keep your speed going
kind of fun
What's the technique to avoid launching yourself off a ramp?
slowing down so you're not accelerating off into the air too high
the two shoulder triggers are analog
left applies reverse thrust and right applies forward thrust
this track is kind of silly, since it has such hard edges
I'm going to smooth it out and there will only be ramps in interesting places
I really have no idea what I'm doing
I actually want to replace the soap bar/roach thing
I'm going to see how much my maya skills have deteriorated in the last 5 months
there's ton more track/physics work to do obviousily
but I want to add a wavefront obj parser and then actually replace the blue background with a ray traced scene
Nice
your game is looking fun already
I think I will try out VK_NV_cluster_acceleration_structure
for the background
the race track will be a shrimple quad ribbon but the background will be a hyperrealistic path traced scene with a billion triangles
I just want a height map
my simple test track is over a million triangles 
idk
imo that extension seems geared towards very complex scenes, but nothing is stopping you from exploring it for fun
yes I just want tessallation geometry in the RT pipeline
I think there might be special intersection methods that are extra fast for heightmap
oh that's cool
I'll check that out first thanks
brief googling gave me this
https://publications.lib.chalmers.se/records/fulltext/250170/250170.pdf
oh I replied to the wrong thing
I meant to reply to this
I searched for https://kagi.com/search?q=height+map+vulkan+ray+tracing&r=us&sh=HnPpUPYesFsjd81ZU8j83w
Better search results with no ads. Welcome to Kagi (pronounced kah-gee), a paid search engine that gives power back to the user.
actually some results later on mention intersection
I'd remove the vulkan keyword personally
thanks for your help I'll look at using an intersection shader
I'll make a better skimmer model and add an obj parser before that and then I'll look at making something better than a blue background
May I ask what kind of developer you're seeking?
general full stack devs, but here are the openings https://www.conductorone.com/careers/#join
"software engineers" basically
our work is building out async workflows, state machines, APIs for UIs and customers, data processing, automation, and recently AI agents, as well as building integrations for things like AWS, Google Cloud, 300 other things
CORS errors 😛
cool, remote is possible?
read
the website isn't built by engineers
that's not the app, that's a marketing page
if you're really skilled in something we need, maybe
interesting.
our offices are nice though
the hiring process is remote unless you're near by
we're in portland and san francisco
and is the team global?
yes
hiring process is talk to one of our recruiters, there's a phone screen and about 4 panels in one day, one of which is technical
I am ready if they are.
oh I see, try applying! good luck!
I don't like have any influence over the process, I'm just a cog
np.
just to be clear, there are three open roles as software engineer.
which role should I apply?
read through them and find one that's good for you
hmm, okay.
kind of goes without saying that you need to pick what you want
normally not reading the JD would have you insta filtered
even before AI when you'd be instafiltered anyway
I have no idea what the team that reads the application does
I just get an interview scheduled and then I enter feedback and then someone makes a decision and I have no influence or understanding of it
when it was just a few of us five years ago, we didn't even interview
it's all been enterprisified
it's kind of weird to being just a few people, where the "CEO" is just a title one of the other people on the team had and we all worked together, to now I'm a line engineer and the CEO is flying around the world meeting other CEOs and I barely ever see them anymore
are you at least sitting on enough options to be happy
how many developers are there in the company now?
I don't even know anymore tbh
there are lot of teams now
there are many more teams of engineers now then there used to be engineers
probably want to ask when you talk to someone
idk, by default I don't count equity as worth anything, even though I did exercise a year ago and that was really expensive
but I just assume it is worth nothing, because 9 out of 10 times that's how it turns out
this is like my fifth or sixth startup
ah
I will 100% stop working the first chance I get, and then I will bikeshed 24/7
that would be so nice
I think maybe sometimes I just get a job stocking shelves or something braindead, if those jobs still exist, and just program only for fun
and by braindead I actually mean, not mentally stressing, I shouldn't have used that word
first time opening up maya to do work in many months, let's see if I still got it
after it updates
crashed on opening
will not open
I guess I need to delete my preferences folder
yup, fixed it, classic maya crash fix
a tale as old as time
not my fault I swear 
painting with vertex colors is fun, but a little challenging
going to try and just load this
just a better placeholder than the bar of soap
Directory of D:\projects\RosyRendererCreatives\maya\fury_road\scenes
11/24/2025 08:40 PM <DIR> .
11/24/2025 08:39 PM <DIR> ..
11/24/2025 06:27 PM <DIR> edits
11/24/2025 08:40 PM 185 skimmer_1.mtl
11/24/2025 08:40 PM 81,802 skimmer_1.obj
2 File(s) 81,987 bytes
3 Dir(s) 795,730,239,488 bytes free
oh hrm
obj doesn't support vertex colors fml
I'll have to write a custom export tool
that's not going to work
it does by extension
blender supports obj with vertex color
and my game loads them
you need some "newer" blender (from the last year or two) to export it
according to an ancient stackoverflow post (https://gamedev.stackexchange.com/questions/21303/how-can-i-include-vertex-color-information-in-obj-files), autodesk meshmixer puts the colors immediately after the vertex definition
ex a vertex at 1, 1, 1, with a color of 1, 0.5, 0 would look like
v 1 1 1 1 0.5 0
or something
yes I think that's what the blender extension does too
I think the python script to do this would be easiest
i like the name of that linear2srgb function
linearrgb_to_srgb_v3_v3
now that I think of it, the v3 probably means 3 vector components and not version 3
oh that's c++
returning by out parameter in that function is yucky
too hard to make a struct that wraps float[3] I guess
it do be a nitpick
seems to just be c++ for the stdlib
otherwise its c style code
the header is a .h file
import maya.cmds as cmds
import sys
project_path = cmds.workspace(query=True, rootDirectory=True)
obj_path = "scenes/skimmer_1.obj"
full_skimmer_path = f"{project_path}/{obj_path}"
print(f"project_path: {full_skimmer_path}")
with open(full_skimmer_path, 'r') as f:
lines = f.readlines()
vertex_index = 0
max_lines_to_check = 10
for line in lines:
if line.startswith('v '):
pos = cmds.pointPosition(f"skimmer_geo_1.vtx[{vertex_index}]")
vertex_index += 1
print(f"vtx: {vertex_index} obj: {line} pos: {pos}")
if vertex_index >= max_lines_to_check:
print("finished checking max lines")
break
print("all done")
project_path: D:/projects/RosyRendererCreatives/maya/fury_road//scenes/skimmer_1.obj
vtx: 1 obj: v -1.367517 0.500000 6.700000
pos: [-1.3675166368484497, 0.5, 6.699999809265137]
vtx: 2 obj: v -1.367517 0.811514 6.700000
pos: [-1.3675166368484497, 0.8115143775939941, 6.699999809265137]
vtx: 3 obj: v -2.446929 1.500000 -6.700000
pos: [-2.446929454803467, 1.5, -6.699999809265137]
vtx: 4 obj: v -2.446929 0.500000 -6.700000
pos: [-2.446929454803467, 0.5, -6.699999809265137]
vtx: 5 obj: v -1.522077 1.500000 4.781267
pos: [-1.5220767259597778, 1.5, 4.781267166137695]
vtx: 6 obj: v -1.522077 0.500000 4.781267
pos: [-1.5220767259597778, 0.5, 4.781267166137695]
vtx: 7 obj: v -2.351618 0.500000 -5.516786
pos: [-2.3516178131103516, 0.5, -5.516786098480225]
vtx: 8 obj: v -2.351618 1.500000 -5.516786
pos: [-2.3516178131103516, 1.5, -5.516786098480225]
vtx: 9 obj: v -1.836718 1.500000 0.875257
pos: [-1.8367183208465576, 1.5, 0.8752567768096924]
vtx: 10 obj: v -1.836718 0.500000 0.875257
pos: [-1.8367183208465576, 0.5, 0.8752567768096924]
finished checking max lines
all done
I can just append them
with polyColorPerVertex
hrm
color = cmds.polyColorPerVertex(f"skimmer_geo_1.vtx[{vertex_index}]")
vertex_index += 1
print(f"vtx: {vertex_index} obj: {line} pos: {pos} color: {color}")
vtx: 10 obj: v -1.836718 0.500000 0.875257
pos: [-1.8367183208465576, 0.5, 0.8752567768096924] color: None
:(
color = cmds.polyColorPerVertex(f"skimmer_geo_1.vtx[{vertex_index}]", query=True, rgb=True)
there it is
pos: [-1.8367183208465576, 0.5, 0.8752567768096924] color: [0.8899999856948853, 0.8899999856948853, 0.8899999856948853]
bam
mtllib skimmer_1.mtl
g default
v -1.367517 0.500000 6.700000 0.890 0.890 0.890
v -1.367517 0.811514 6.700000 0.890 0.890 0.890
v -2.446929 1.500000 -6.700000 0.890 0.890 0.890
v -2.446929 0.500000 -6.700000 0.890 0.890 0.890
v -1.522077 1.500000 4.781267 0.890 0.890 0.890
v -1.522077 0.500000 4.781267 0.890 0.890 0.890
v -2.351618 0.500000 -5.516786 0.890 0.890 0.890
ezpz
import maya.cmds as cmds
import sys
project_path = cmds.workspace(query=True, rootDirectory=True)
obj_path = "scenes/skimmer_1.obj"
full_skimmer_path = f"{project_path}/{obj_path}"
skimmer_color_path = f"{project_path}/scenes/skimmer_1_colors.obj"
print(f"project_path: {full_skimmer_path}")
with open(full_skimmer_path, 'r') as f:
lines = f.readlines()
with open(skimmer_color_path, 'w') as f:
vertex_index = 0
for line in lines:
if line.startswith('v '):
parts = line.strip().split()
x, y, z = parts[1], parts[2], parts[3]
color = cmds.polyColorPerVertex(f"skimmer_geo_1.vtx[{vertex_index}]", query=True, rgb=True)
f.write(f"v {x} {y} {z} {color[0]:.3f} {color[1]:.3f} {color[2]:.3f}\n")
vertex_index += 1
else:
f.write(line)
print("all done")
I shall have a proper skimmer tomorrow or the next day
and then I'll probably be doing ray tracing stuff for a couple of months
the goal with RT is to just draw the background world with it, I will use the graphics pipeline for the geometry around the track, like if it goes into tunnels or through buildings or anything that will be rasterized, I just want the like distant world to be RT, that's it
and I'll use RT for shadows, and GI and reflections I guess, idk
I don't want to RT the game's geometry because I don't like the noise
and I just want a graphics pipeline
idk
will the backgrounds be animated?
I hope so
hrm the scale of this vehicle is huge tbh
12 meters :X
14 actually
I'll make the track bigger
or shrink it
14 meters is ridiculous
i'm going to import in blender to see what it looks like
idk how to even rotate in blender
looks kind of dumb
I'll keep working on it later
I should bevel the edges
anyway I'll make a skimmer customization feature, so it's fine
Scroll wheel click + drag rotates camera iirc
I actually figured it out: alt+F4
Blender has a LOT of controls
Eh you get through them pretty fast
I should stop using slang since I can't understand the words used in the documentation
Slang supports the DescriptorHandle<T> type that represents a bindless handle to a resource. This feature provides a portable way of implementing the bindless resource idiom. When targeting HLSL, GLSL and SPIRV where descriptor types (e.g. textures, samplers and buffers) are opaque handles, DescriptorHandle<T> will translate into a uint2 so it can be defined in any memory location. The underlying uint2 value is treated as an index to access the global descriptor heap or resource array in order to obtain the actual resource handle. On targets with where resource handles are not opaque handles, DescriptorHandle<T> maps to T and will have the same size and alignment defined by the target.
slang is a black box and when it doesn't work I just feel helpless
there's no spec to refer to
I think the VVL support for the RT pipeline is largely insufficient
I think you're supposed to ask on their discord or github
I have no idea why renderdoc crashes still on opening up captures
this is horrible
also I did ask
indeed, having an actual spec would be miles better
and it hasn't helped
I hate asking for help. I did today
and what was offered didn't work
only now did I realize that glsl does have a big advantage over other shading languages, and it's that it has an actual comprehensive spec
yeah
I get VVLs about layout issues for my acceleration structures in my slang, I am using descriptor indexing which is actually not officially supported by slang, but just seems to work anyway
ACCELERATION_STRUCTURE is excluded from the list of types since Slang by default uses the handle to a RaytracingAccelerationStructure as a GPU address, casting the handle to a RaytracingAccelerationStructure. This removes the need for a binding-slot of RaytracingAccelerationStructure.
you search for anything related to RaytracingAccelerationStructure on the slang discord everyone is using the device address you get from vkGetAccelerationStructureDeviceAddressKHR
ok so descriptorhandle effectively acts as resourcedescriptorheap[index] where the descriptorhandle is index, unless its not targeting hlsl glsl spirv in which case its T?
I don't know how T is useful here since bindless requires a descriptor set and index right
you need two numbers
how do I supply two numbers if it's just "T"
and the answer just seems to be not to use descriptor indexing with RaytracingAccelerationStructure, but that's the only thing that works for me, I would love to have a small C++ example demonstration of this like one of Sascha's examples but can't find anything like it
hrm
well its a uint2 if im reading the docs you pasted right?
in the case of a device address the uint2 is a 64bit address
hrm
I gotta ditch slang I hate it
its built to be a 1:1 mapping of hlsl, or very close to it
maybe its simple to switch to dxc -> spirv comp?
it's a superset of pre-2021 hlsl
Bjorn is trying to use one of the new (slang-only) features
hlsl doesn't have the magic descriptor handle thing you're trying to use
it supports bindless but in a different way
what's interesting is that's so simple in spirv
it's just trivial to follow it in spirv
^^ this slang won't even load for me by the way, compiles fine in godot, I get VVL errors for it
It compiles fine
but when I load the generated spirv VVLs
it's fine
skill issue or something I don't know I was going to work on obj parsing but just got tired of the RT vvls
I'm going to pause working on the game and focus on trying to target spirv directly
fuck it
@cloud rivet if you need some more 1:1 help to get things fixed, just ping me
😅 I feel a bit bad regarding everything not working for this stuff
I appreciate your help
I just don't like slang I think
fair enough--
if I may ask (it'll help me to know), what don't you like about Slang?
I love pointers
I don't mind generics in theory, but it seems once you have generics the type syntax can become incredibly complex and unfun to read and think about for me
which is fine for work that I get paid for
but for a personal project I don't think it's for me
mmm
well, if you want c or almost-c to spirv, there should be a few options
C Compiler to SPIR-V. Contribute to heroseh/hcc development by creating an account on GitHub.
Intro # Vcc - the Vulkan Clang Compiler, is a proof-of-concept C and C++ compiler for Vulkan leveraging Clang as a front-end, and Shady our own research IR and compiler. Unlike other shading languages, Vcc aims to stick closely to standard C/C++ languages and merely adds a few new intrinsics to cover GPU features. Vcc is similar to CUDA or Metal...
or at least, they have code you can reference when you make your own
the making a new c->spirv compiler?
probably better to contribute to an existing one to be fair
You go above and beyond. Thank you for your help. You’re excellent. 
I will look at all these!
I think that vcc one looks interesting
nano made their own c to spirv wow
I'm looking at this actually https://github.com/google/spirv-tutor/tree/main/01 - Introduction to SPIR-V
so what I think I'll do is write some tests, and just start with a single triangle
once I'm past the spirv tutor I guess
