right as you walk in, kick your feet up on the interviewer's desk and say "enough about me, why should i work for you?"
19.10.2025 13:00 โ ๐ 5 ๐ 0 ๐ฌ 0 ๐ 0@kahoneki.com.bsky.social
https://kahoneki.com/ ๐ Graphics Enthusiast and Maths Enjoyer :]]]] ๐ She/Her ๐ฎ Currently working on a Vulkan/DX12/PS5 Render Engine ๐ 3rd Year Computer Games Technology Student @ Abertay University
right as you walk in, kick your feet up on the interviewer's desk and say "enough about me, why should i work for you?"
19.10.2025 13:00 โ ๐ 5 ๐ 0 ๐ฌ 0 ๐ 0if the universe turns out to be deterministic im making all my objects constexpr
19.10.2025 07:08 โ ๐ 1 ๐ 0 ๐ฌ 0 ๐ 0((((and out-of-core rendering with HLODs if i have time........ i just think it'd be cool........))))
18.10.2025 09:20 โ ๐ 1 ๐ 0 ๐ฌ 0 ๐ 0might be shooting myself in the foot here by saying my plans before ive actually figured out if it'll be possible (this is for a school project so due in a couple months), but id like to try and get 3d physics, networking, and serialisation for saving/loading in before submission....
wish me luck :>
and it is indeed up-to-date with the graphics samples
18.10.2025 09:09 โ ๐ 1 ๐ 0 ๐ฌ 1 ๐ 0here's a lil sample of the ECS in action, first in the user's code and second in the backend RenderSystem :>
18.10.2025 09:09 โ ๐ 1 ๐ 0 ๐ฌ 1 ๐ 0the entrypoint is owned by the engine, and it gets linked to the user's code through those function declarations that the user is expected to define
18.10.2025 09:06 โ ๐ 1 ๐ 0 ๐ฌ 1 ๐ 0been a lil while since the last update, but ive been busy converting my render engine to a fully fledged game engine !!
this has involved writing my own ECS framework which has taken up most of my time asdfjfhkdsj but it's done now :>
details below !
am i a graphics programmer yet ?
12.10.2025 01:52 โ ๐ 4 ๐ 0 ๐ฌ 0 ๐ 0(ignore overwatch in my taskbar that's not relevant to the demonstration)
10.10.2025 05:17 โ ๐ 3 ๐ 0 ๐ฌ 0 ๐ 0just got done adding MSAA and SSAA support to the vulkan side of things :>
the 1st image is with no anti aliasing, the 2nd image is with 8x MSAA (notice how the geometry edges are anti aliased but the textures are still jaggy, classic MSAA ๐), and the 3rd is 4x SSAA
video in replies !!
is it IBL time chat?
09.10.2025 03:13 โ ๐ 0 ๐ 0 ๐ฌ 0 ๐ 0fixed the lighting !! looks a lot better now (had many issues with my tbn matrix n whatnot, classic tbn matrix amirite)
09.10.2025 03:12 โ ๐ 2 ๐ 0 ๐ฌ 1 ๐ 0testing this sample on my laptop running d3d12 at 4k did actually reveal some weird screen tearing issues so ill have to do some investigating there, doesn't happen on vulkan or 1080p dx12 though so probably just some weird dx12 quirk im not familiar with sdfjkhfsd
08.10.2025 20:57 โ ๐ 1 ๐ 0 ๐ฌ 0 ๐ 0day 1 of PBR, this is just copied over from my old vulkan framework so it doesn't look great but it's a start !! and i can confirm all the textures (albedo, normal, roughness, metallic, ambient occlusion, and emissive) are being loaded correctly :>
also this is working on dx12 and vulkan
gonna take a break now from the backend stuff so i can spend a while doing fun shading i think :>
08.10.2025 10:54 โ ๐ 2 ๐ 0 ๐ฌ 0 ๐ 0took a full day of locking tf in but textured models are finally implemented, works on both d3d12 and vulkan
08.10.2025 10:53 โ ๐ 5 ๐ 0 ๐ฌ 1 ๐ 0camera camera camera camera !!!!
07.10.2025 04:21 โ ๐ 4 ๐ 0 ๐ฌ 0 ๐ 0cube cube cube cube !!!!
06.10.2025 04:56 โ ๐ 4 ๐ 0 ๐ฌ 0 ๐ 0comms open
04.10.2025 06:04 โ ๐ 1 ๐ 0 ๐ฌ 0 ๐ 0surprise !! if you made it this far, you get to see the Neki logo with the proper colours after my dumbass remembered to use srgb format for the swapchain
04.10.2025 04:45 โ ๐ 1 ๐ 0 ๐ฌ 0 ๐ 0the GPUUploader class also has a EnqueueBufferDataUpload() function which is the same thing but for buffers instead of textures, so in the Texture sample, im batching my texture upload alongside the vertex and index buffer uploads
yap session concluded, thanks for reading :))
i make it sound more complicated than it is i think sdfjhkfsd
this is it !!
synchronisation is also handled quite nicely i think. when you call Flush() you pass in true/false depending on if you want to stall the calling thread until the flush is finished. If you set it to false, the function returns a fence that will be signalled when it's done so you know when to Reset()
04.10.2025 04:31 โ ๐ 0 ๐ 0 ๐ฌ 1 ๐ 0this means that a bunch of uploads (like if you had 1000 textures to upload) would all get batched together into a single staging buffer and the transfer commands submitted all at once
once it's done flushing, you call Reset() to clear the staging buffer and reset the command buffer
more below :>
3) Call EnqueueTextureDataUpload() on an NK::GPUUploader - this will load your texture data into a subregion of its large staging buffer and record the commands for copying it to your texture
4) Call Flush() on the gpu uploader, executing all the enqueued commands !!
more below :>
the current process for loading and using a texture is:
1) Load the image with NK::ImageLoader::LoadImage(), that gives you an ImageData object with the pixel data and a TextureDesc object that can be passed straight to:
2) device->CreateTexture(), which makes the GPU texture object
more below !!
i should really get back to work on dx12 but i soooo don't wanna boot up windows....
anyway, i got image loading working on vulkan :>
textures and samplers implemented in vulkan !!
for now im just hardcoding in some colour bytes, will get round to actual image loading with stb soon enough.
first though ive got quite a bit of catching up to do with dx12....
nothing gets me going in the morning more than the knowledge of a solution i spent 8 hours yesterday implementing needs to be entirely scrapped
02.10.2025 14:30 โ ๐ 1 ๐ 0 ๐ฌ 0 ๐ 0