#Andromeda - Terrain/Landscape editor using Vulkan and Rust
1 messages · Page 5 of 1
sure 
fence.add_cleanup_fn([_pool = std::move(this->pool), submits = std::move(this->submits)]() {
for (auto& submit : submits) {
submit.cmd.delete_now(...);
}
// _pool goes out of scope and is released here
});
// render loop
{
// wait for frame's fence
vkWaitForFences();
vkResetFences();
fence.clean_up_all_the_resources_used();
auto ubo = local_pool.allocate_ubo();
// record commands (uses ubo)
vkQueueSubmit(queue, {
commands, ...
}, fence);
fence.add_dependent_resource(ubo);
}```
Except that final line, yes
Well, implicitly
{
fences[cur_frame].wait_and_call_cleanup();
local_pool = LocalPool(global_pool);
auto ubo = local_pool.allocate_ubo();
auto submits = SubmitBatch(...);
submits.add_cmd(VkCommandBuffer, ...);
fences[cur_frame] = submits.finish(local_pool);
}
the submit batch takes care of creating the fence properly and whatnot
What's new fence
each frame in flight has its own fence associated with it so you can have some overlap
so more like fences[cur_frame] really

What if it's not in a frame though
Then you need to keep the local pool in scope yourself
Either attach it to the fence manually or wait on the fence before destroying it
yeh me neither
but most of those cases you'll have something like
void async_thread_task() {
// record commands
auto pool = LocalPool ...;
auto fence = submit(commands);
fence.wait(); // now we block
}
and then its not an issue since the pool is kept in scope long enough
{
auto huge_buffer = local_pool.allocate();
auto desc_set = allocate_desc_set();
desc_set.bind(huge_buffer);
auto command = CommandCompiler();
command.bind_desc_set(desc_set);
auto cmd_buf = command.compile();
auto fence = queue.submit(cmd_buf);
// ~fence(); will wait for the thing and kill the thingies
}```
I had this in mind
But I have no idea how viable it is, I guess the only way is to try
its possible
but what i dont like about this is the implicit blocking wait
Something potentially expensive such as blocking while the gpu waits can imo never be implicit
oh btw, binding descriptor sets is entirely transparent for me
i bind them directly in the command buffer
cmd.bind_uniform_buffer(0, 0, buffer);
black magic
no uh
it tracks all bindigns until draw or dispatch is called
then looks that info up in a hashmap
returns descriptor if exists, allocates new one otherwise
What's the condition for the descriptor set existing?
A descriptor set with all the bindings already specified in a previous frame?
yes
this works especially well with bindless because you have few truly unique descriptor sets
What about stale bindings
i keep track of when the last usage was
if its >= n frames -> delete
i might pool those back into a new pool and re-use them instead of allocating but its not a problem for now
So each descriptor set has it's own frame timer or something?
yeah
Or do they all share the same frame timer
thats all internal to the cache
its shrimply
template<typename R>
struct CacheEntry {
size_t ttl;
R resource;
bool persistent;
}
🤔
// has the hash map used for all desc sets
auto desc_pool = allocate_desc_pool();
// render loop
{
// make many desc sets...
auto desc_sets = vector {
desc_pool.allocate_thing(main_frame_timer),
desc_pool.allocate_thing(main_frame_timer),
...
};
main_frame_timer.tick();
}```
Do I need two hash maps?
One for which descriptor bindnigs belong to descriptor sets
And another for the actual resources bound?
no, those are together
the hashmap is a little like
struct DescriptorBinding {
uint32_t binding;
ResourceBinding resource; // a union or whatever
}
unordered_map<DescriptorBinding, CacheEntry<DescriptorSet>> cache;
(yes i have hundreds of lines of code describing how to hash stuff)
I am conchfused
the exact same logic is also applied to pipelines btw, to create them on the fly once renderpass info is known
Why is there a 1 to 1 mapping of descriptor sets and bindings?
One desc set has many bindings right?
🐸
How do you keep track of which bindings have been bound (and which are new)?
You create a whole new desc set right?
the command buffer keeps a list of these DescriptorBindings
yeah theres no partial invalidation going on now
Makes sense
Yeah, partial invalidation is a lot of extra work for nothing I think
and then i need to look up the exact rules on descriptor set disturbing
This way you just have the ttl of the desc set as a whole
yeah
on each access its reset obviously
so if you use it every frame itll never be deleted
pub struct InFlightContext {
/// The current frame's swapchain image
pub swapchain_image: Option<ImageView>,
/// The current frame's swapchain image index
pub swapchain_image_index: Option<usize>,
pub(crate) wait_semaphore: Option<Arc<Semaphore>>,
pub(crate) signal_semaphore: Option<Arc<Semaphore>>,
}
i would love to delete this struct
Is this good enough?
Wat the hell is this
the present system thingy gives that to the command recorder stuff to do all the proper frame sync and know what swapchain image we have rn
but its ugly
it used to also fullfill the part of LocalPool but thats been ripped out now because it doesnt play well with out of frame submits
and i dont like inconsistency between submitting/recording in a frame and on a background thread
i used to "fix" this by allowing creating 'fake' InFlightContext structs where those optional fields are empty
not frame index no, thats not needed with the LocalPool
because its kept alive as long as needed, theres no way to accidentally overlap access
What about per frame resources? How do you index into these?
they have to be allocated through a local pool
I have an idea to make this completely transparent but I don’t know if it’s a good one
I can stuff the local pool inside the command buffer and delete it together with it
That way you’d have to allocate through the command buffer instead
It already has all the information passed to it to construct a local pool anyway
But I’m not sure I like that a lot
The upside is you never have to worry about keeping the local pool alive
Hey at least you got accepted to uoft
I have no idea when to start submitting my uni submissions
Look at all these younglings still in high school

Also question about your terrain
How do you handle edits/brushes exactly?
Do you just read back the heights and then modify them by some delta (based on brush size/weight?)
I'm working on an octree voxel terrain ATM and I'm about to implement terrain edits and unfortunately I can have persistent voxel data because of the octree so I have to find a different way to handle terrain edits (maybe using CSG ops) instead of brushes
Its entirely in compute
I create a cmd buf with the compute submit for the edit and add that to the current frame’s submit call
Yea makes sense
Reading back height data would introduce too much delay I think
Plus you’d need to double buffer it
Yep
I'm gonna do my edits using compute as well since my voxel texture only persists for one frame anyways
Yeah I’m sure it’s doable
I guess I'll need to regenerate the terrain everything I do an edit
Plus you get nice gpu parallelization
Yep
2-4 ms for like 20 octaves of voronoi and simplex noise in a 64^3 volume is not bad at all
Oh yeah that’ll be fine
Compared to like 200ms on the cpu lol
💀
Is it 2ms on a 1050
Yep
Yea not counting rendering tho
I can do a quick profile on my pc when I get back to uni on sunday
Only compute is 2-4 ms
I have a 3060 ti there
Holy
Compared to my laptop MX250 
Yea my dad has a desktop with a 1060
Surprisingly much more powerful than my laptop 1050
Yea
readback for what?
for editing using a brush
yeah are you saying applying the brush edit on cpu?
im saying im not doing that :P
yes that what i meant
im doing it in a compute shader instead
the program i've worked on that did CPU editing doesn't readback for CPU brush application, it just stores on CPU and uploads changes when dirty
https://www.notapenguin.blog/posts/terrain-brush/ i have it explaind in a lot more detail here
i read that :P i was just trying to figure out if i understood what you meant with that sentence
since i don't think many programs would be storing on GPU, move to RAM to edit, then move back to GPU
inefficient either way from RAM :P
i'm honestly surprised the unnamed program that i've worked on does it 

especially considering the brush position is obtained off a render result readback 
if that makes sense
yeah im a bit confused as to why you would do that
so paint delay is 2ish upload frames and 2 readback frames
i find the readback delay not too noticable but add another 2 frames and i might get annoyed
i dont atm
ye, should help
i dont really know what do do about repainting yet
I used to only redraw the terrain on change
oh btw is undoing gonna be hellish for you 🙂
but i scrapped that for simplicity for now
yeah 
i plan on making a copy of the heightmap when a stroke starts
so you can undo full strokes
i wonder if you could actually store the undo buffers on RAM if you really wanted to have an extended history
would be annoying but i bet some programs do that
you probably could write them back on a background thread tbh
and save the ones very deep down to disk even
if i was an academic who could spend 9 months of my life working on a single thing
that'd be a fun project lmao
yeah maybe lol
Wait I thought this was a personal project but it's for academics instead?
no it is a personal project
i was just making a remark about how it would take a long time to get it working seamlessly
Ohh yea totally
Imagine if it was though
It would be pretty cool
yeah that would be awesome

The McMahon himself
jesus fucking christ rust
go to rustlang...
find out how t install rust
read this
Rustup: the Rust installer and version management tool
The primary way that folks install Rust is through a tool called Rustup, which is a Rust installer and version management tool.
install rustup
run rustup update
read this:
[deccer@rootfs ~]$ rustup update
info: no updatable toolchains installed
info: cleaning up downloads & tmp directories
info: self-update is disabled for this build of rustup
info: any updates to rustup will need to be fetched with your system package manager
Try running cargo
there is no cargo installed along with rustup
i just installed rustup in me arch
It was super simple when I did it last time
seems to be an official package
not some jank thing from aur
deccer@rootfs ~]$ sudo pacman -S rustup
warning: rustup-1.26.0-3 is up to date -- reinstalling
resolving dependencies...
looking for conflicting packages...
Packages (1) rustup-1.26.0-3
Total Installed Size: 6.98 MiB
Net Upgrade Size: 0.00 MiB
:: Proceed with installation? [Y/n]
Archwiki says to install the rust package
heh
That should install rustc + rustup + cargo
first thing you read on their webshite
Yeh I think that’s how I did it too
I don’t remember but I had a working install on arch with no major issues
im just whining in my language, not complaining

rustup default schtable is also not mentioned on the installing rust 🙂 or "getting-started" or "kwik install"
Yet here he is installing rust
Yeh I found that on the arch wiki for a manual install
deccer has been taken by the Rust demon 😦
Soon you too will join
lol
does rust have equivalent UI to C#'s Avalonia
Lemme check what avalonia is
i hate rust already
look at the scrollbar
every schmuck on the planet who has touched rust, HAD to make a vscode plugin
ah clion better?
Yeah
alrighty
Any jetbrains ide will do but intellij and clion are good
There’s a great rust plugin
Managed by jetbrains
I don’t think so
Rust UI ecosystem is somewhat lacking atm
then the rust demon cannot claim my soul
c++
What reading [over.match] does to a mf
is that valorant
unfortunately
unfortunately for me i recognize the font and background
at least its' not league 🙂
Valorant moment
ok but on the topic of valorant
why is the aliasing in this game so bad
there are so many effects that have 2 pixel wide jaggies
example 1
example 2 is harbor ult
this game needs to run on your 10yearold brother's potato laptop
dont elite player set those to low anyway?
Ngl implementing FSR would actually give you more performance
yes but i'm not an elite player so i do not care
Assuming they don't use OpenGL on NVIDIA, in which case you get randomized performance 
They use ue4
They literally have zero excuse
The aliasing on the minimap is super bad
that is debatable
im not a big fan of vscode
im not talking about the ide but the lang server
ah
this is pretty much what you'd expect if you're installing it from a package manager
it can't update itself because it's not managed by itself
what did you end up doing?
i recommend installing it the official way (the cmd in theit website) because you can update it more easily that way
@shadow trench you use fsr for your engine correct?
yep
I'm thinking of hacking my way through wgpu and somehow implementing fsr for it
Probably impossible but I'd like to try
you can probably just call the raw bindings in the middle of your command buffer
as long as you add barriers before and after for sync itll work fine most likely
Ah well that's impossible lol
Wgpu has an internal command buffer
use phobos ™️
So it doesn't actually tell vulkan to record when you want it to
I might I might
I want smthing vulkaney but not too high level
Cause I already have a nice thicc wrapper around wgpu atm
thats sort of what i went for tbh
annoying parts like sync are abstracted
for me at least using it feels like using vk without the boilerplate
O-o
That sounds very interesting
I gave up on vulkan cause of the boilerplate and sync
But if it's somewhat bearable then I just might
you can check the samples for what exactly it looks like
if you have any issues or questions you can always let me know
Awesome
W crosshair though
true
I have such a burning hatred for AA that I plan to just not support it in my engine
FSR2 is a form of AA
Ohh really?
yeh
I thought it just upscaled things and sharpened it
its TAA + upscaling
Oh fuck it's temporal??
modern AA is fine

btw u ever see this in harbor ults
it's like they do the effect at half res with basically no upscaling 

not even anti-aliasing, this is applied aliasing
anti-anti-aliasing
max graphics settings btw
what happened here lol
the bedframe is what i wanna know about
Thank god I only play real games
im going back to my factorio addiction
yeah that too lol
2k hours 
Yea some effects in Val are like that
good game, may cause severe addiction
true tbh
Yep
o7
The factory must grow 🫡
I have spent the day playing factorio
As you can clearly tell my exams start next week
lmfao same
i spent all weekend playing factorio and doing hardware shit with my friends
still haven´t launched a single rocket tho
have you finished the game?
😔
I was close but I didn’t bother and went to play space exploration instead
I did launch one there but it’s a bit faster
is it?
I think so yeah
doesn´t it start much simpler
No yellow or purple science
god i wish
Im continuing that save now, just finished destroying my entire old base so I can start from scratch but with all my resources left :P
I have 300k plates in warehouses 
yeh mine did too
i kinda hate main bus
idk how i will deal with this
well not hate but just dislike
iiiiish
ye thats exactly what i was gonna go for
its fun
just seems more disconnected and has much less buffering
yeah
also that
i mean you have buffers in your unloaders but thats fine ish
but those are good
yeah
because they decrease unloading times
the material transported is determined by what you put into the cargo wagons
not the distance between the source and target
true
im using cybersyn now for train scheduling, its a lot easier to set up stations than ltn imo
like in a main bus base its completely ineffective or inviable to make bus liens of some stuff because theyre really expensive to buffer but in a rail base thats no issue (specially because you can easily allocate space in cargo wagons with exactly what you want and how much of it you want)
ill have to check that out
just one more lane bro

it will fix the traffic im sure bro just one more
its also much easier to make malls and other factories for
with a main bus you need lanes for everything
with a train system you just need a single train connection
then you can assign a train to collect exactly what you need
spaghetti base
indeed
I switched to 16 bit bus for iron and copper, loaded and unloaded by trains, it was a real fucking pain to setup but it's so worthit
My iron has never had so much
T H R O U G H P U T
The bus-es are also localized so I don't have unnecessary space dedicated to ungodly amounts of belts
Everything is handled by train loaders and unloaders which I spam at every facility I have
There's also a Primary Production Facility (PPF) and a Secondary Production Facility (SPF) which produce all the materials needed for most craftings (green red blue circuits, belts, dubious liquids like L U B E)
LUBE
There is an 8 lane train system which starts from the PPF and the SPF and goes to the numerous APFs (Auxiliary Production Facilities)
sounds very large scale
id love to make my new mall not a mess and use logistics bots but unfortunately SE says no
@shadow trench are your rust bindings for fsr 2 on github
thx, I wanted to show my coworkers
i did the maffs
Epic
i never did any maffs in any game, i just play like an idiot
but i also have never played past yellow science 😄
Angry Anno 1800 player noises
Anno 1800 is ❤️
It's going to be so hard for BlueByte Mainz to beat that one
imho a masterpiece in the genre now with the DLCs
when my pc was still working i played it quite a log with a colleague and it was always 3 or 4am in the morning when we stopped XD
yeah
and you need all dlcs, but all worth it tbh
oh that looks cool
I kinda wish they'd have gone with the PDX route for multiplayer at least
so only host needs dlc
i mean they dont cost an arm and a leg
well if they are on sale
(unlike paradox dlcs)

and they are on special every now and then
well and there's the gold edition now or whatever it's called
yeah
I always think that PDX dlc policy was actually pretty fine
id just love my uplay account to become a steam account so that i can just play via steam
yeah its mostly fine
ofc. with CK3 and Vicky 3 the prices for DLC are a bit too high for me
i mostly played stellaris and cities skylines
But I tend to think of it more as a "very soft" subscription model
i only plaid stellaris for some time back then
Stellaris is very nice
have a screenshot of me conkuqering the whole universe 🙂
but currently waiting for Diablo 4 
i can get so immersed in that game, its great
did you enjoy endgame lag
it was like 7 years ago or so
it's nice getting immersed in genocide on a galactic scale

I do not agree with this
I think space exploration makes a lot of the processes more difficult
I believe you just got more used to the game
yeah thats definitely possible
i do find it much more fun, but then again i tend to have a masochist tendency in these kind of games sometimes 
Space exploration is fun
i recently played through everspace2
finished main story + few side quests in ~27hrs and played a little further to 30hrs
it gets super repetetteteive and the story turned very meh at the end
according to the interweb, if you solve everything you can spend ~70-90hrs
thats a pretty short game
they are working on a dlc for end of year, and a paid expansion for q2 2024
but ye
also quite repeteteive... fly to x, to get the job, fly across your accessible universe to look at something there, just to fly back to get the XP or whatever
plus the random side quests here and there

LMAO
are you sure you dont want to go to toronto to do math
that doesnt sound like a real place
it's not 💀 it's their bad campus

also all these unis will lead me to the same point
its just how much debt i go into
this is why it was agonizing to pick 
they're all good options
fair enough
im so proud i let an rng algo decide my fate
as long as this is a good one
and you dont regret it later
enough factorio for today probably
i built this entire area today except the solars
from the ashes of my old mess arises a new mess
yes the train stations at the iron and copper smelters are stupid i realized that too late
ill fix it eventually
yo
im starting to regret ym choice
but
the other option ottawa would put me
into crippling student debt
what
this channel is this meme
but instead of the first part, it's andromeda
and instead of ant farm, it's factorio
Bringing back #memes step by step
GG!!
I'm thinking of going UofT for CS / Graphics Dev (if they have it?) but idk yet
@young oar It’s a gamble.
I am not joking
Apply early as well. They seem to be more receptive to lower averages to people who apply early. So i’m not kidding, like prepare your application before they even open and apply ASAP
Later you apply -> higher averages you get. It’s how kids with 99s and 98s get rejected from UTSG.
I;m so sorry penguins for temporarily turning this place to university apps 😭
it won't be nearly as bad as when you start doing job apps 
imagine trying to survive the moisture wars while looking for a job
But their GP is the strongest in Canada imo. They offer very good and compelling courses. However, they don’t offer a ray tracing course. Iirc UOttawa only does

From what I heard it isn’t bad here
Almost every uni offers co-op here in Canada. So it’s not uncommon to go back to work full-time at your co-op
btw university of rochester (which is close to toronto) offers color science degrees, but I think only MS and PhD
Color science?
color perception and reproduction is an extremely complicated topic
yet it's very important in
(and any other field where images are produced)
things like """gamma correction""" and """tonemapping""" (which aren't even correct terms) are the tip of the color science iceberg (and there is a stupid amount of misinfo about it on the internet)
Oh damn
Huh I assumed color science would be way more like
Pigments to make paintings
Also I’m devastated. I just learnt today that US unis don’t require you to take SATs at all 😭
I would’ve tried for Cornell bro
by SAT do you mean the standardized test
lol that kind of stuff would be taught in an art degree
Yeah. Apperantly a lot of US unis dropped the standardized testing requirements
Yayyy
Appreciate the tip!
That's definitely going to help
Good luck man! UTSG requires a supplemental form so make sure you stack your ECs with your interests. UTSC only looks at your average. UTM hasn’t change their CS POSt requirements so it’s still insanely hard there.
Hmm what else. UTSG is the main campus you want, but I would say also apply to UTSC CS as a back up.
Solid solid
im thinking of generating material properties based on the height data
i dont know if its possible at all but it sounds interesting
color can maybe be done using a few base colors/textures + noise + normals
That's what I do
I use 3 onion textures for albedo/normals/mask and blend within them using clamped normal up scalar
how does that work 
does the user supply base textures and you modify them based on height data?
Oui
Left is albedo
Right is normal data
There's a lot of noticeable tiling cause I use simple triplanar mapping
And it's already taking 3ms per frame 
i wouldnt do it every frame so i can afford fairly expensive procedures
Oh it's my frag shader
ah does it interpolate between the different albedo textures based on steepness and whatnot
Yep exactly
I need to find a way to fetch barycentric coordinates to handle custom "painted" materials
I would if it wasn't taking 8ms / frame to render the whole scene lol
It's so slow and I have no idea why
Yeap
and then swap out the new textures when its done
are you just saying procedural materials?
otherwise i do not understand
possibly
i havent done anything like that before
so i dont really know what im talking about 
do you want a recommendation?
Sure yeah
ok, it'd take a bit, like probably a couple of weeks, but building shaders out of a node graph might not be as hard as you think
you expose some textures derived from the terrain, and you add math operators and the output nodes, then build an hlsl string out of it
not quite a normal shader graph
since it's special cased for the terrain, but that conceptually at least
big chance that a lot of it is small triangles with oversamlpling textures
That seems like a good idea yeah
i've really wanted to build a shader graph editor for the past like year after working with some for my job, just haven't had the time
i feel the same about the terrain editor and they're closely related 
np
from my experience, the node editor was more complicated than the shader graph :)
Heh I can imagine tbh
there aren't many great non-fully procedural alternatives i think, though one workaround would be just to have good exporting and importing with splatmaps
Yea most probably
I need to find a better way to sample my textures
9+ texture samples don't seem too good
I mean it is better than 96
Holy fuck
That is a lot
It also might be because I'm using onion textures
Maybe they have an impact on performance when sampled?
onion = array?
it's pretty easy to get to large numbers when you're sampling multiple materials
imagine each material has 6 channels, and you support 8 materials
yeah or you support 6 materials with 4 channels and sample each 4 times :P
that's where the 96 came from i see
yep
but that was for cliffs
not for the terrain itself
afaik for that they still used adaptive virtual textures
8 to 12 even!
I looked up ECS in this discord and somehow found this chat. FYI I’ve taken every graphics course and honestly they’re not really good
It’s just RT basics
Sorry for off topic
watcha lookin up ECS for :)
Haha
I’m trying to figure out how ECS’ work with transform hierarchies
Or if they just go away with the concept completely
i don't think penguin minds off topic much
Since ECS have non deterministic iteration I’m inclined to think it’s removed
i would suggest doing away with them
Hm ok
Not remotely
There will be like 1000s of objects at most
Want to write first then benchmark
Wtf ty
Multiple options are presented
if you have an entity hierarchy, you can just store an entity reference (even as a component!), or you can store the entire hierarchy in an entity
Such a specific problem I’m surprised someone bothered lol
I’m a filthy rustacean
ECS and hierarchies aren't very niche in gamedev haha
So references are kind of a PITA depending on the usage
you can store the entire hierarchy in an entity
this actually isn't that bad of an option FWIW, it's how my game works
if you import a model, splitting apart that hierarchy means you lose the hierarchical transforms, and there is no parent/child relationship between entities
but models still have them to keep GLTF importing easy
I was hoping to just shove everything into a big node hierarchy for the entire game world, but it’s proving to be difficult to load models into memory and then spawn/duplicate them
Because of rust’s borrow checking I resorted to having transforms just be handles into a “node context”
Handles being indices into a slotmap
But it makes it hard to duplicate or spawn entire prefabs
That’s the big issue idk how to solve
A good design pattern for that
(Duplicating handles is worthless)
one of the things about ECS is that it already handles the thing that parent/child relationships often are trying to solve
e.g. my characters have a healthbar, usually making this a child of the character would be a solution, but with ECS it's just a component that's fairly easy to construct it's transform from the entity's base transform component
so i'd make sure that you need an entity relationship hierarchy first, which fair enough if do
It’s mainly just for importing GLTF tbh
I use blender to author maps, and export custom attributes per node
I figured maintaining the hierarchy would be beneficial but maybe I could flatten it depending on what the object is I guess (?)
Honestly I just put everything into a giant node hierarchy because of frame interpolation: you can make the camera a node, skeletons into nodes, game objects into nodes etc
Then just interpolate the entire node context
I was hoping to keep that so I didn’t need specialized frame interpolation for every single type of object which might have one or more transforms
What would that look like then? Do you mean the system you proposed where instead of child/parent you just have components or
i'll move channels, i don't wanna pollute penguin's channel too much lmao
https://discord.com/channels/318590007881236480/1019758048912359525
Sry
i take responsibility
all good
Large-scale terrains are essential in the definition of virtual worlds. Given the diversity of landforms and the geomorphological complexity, there is a need for authoring techniques offering hydrological consistency without sacrificing user control. In this paper, we bridge the gap between large-scale erosion simulation and authoring into an ef...
👀
is anything wip 🙂
I have been cooking material graphs in my head
But concretely I have been playing factorio and studying
Exams next week :(
moooooooood
Why is this so relatable
I've also been cooking mesh shading in my head, but currently studying
😭
heh
i see
you gonna NIH node editor or just yoink one?
if you do it that is
Real
Idk yet 🤷
@hot yarrow can u pin this
to clarify this in more detail, i think there is a node editor thingy for egui but if i use it i probably want to customize/extend it
and at that point i might want to make my own anyway
Yeah
factorio timeeeee


Thank
you will be judged
dont use the readme example
and your library will be heavily abused

we starting off good
(its outdated)
the ones in examples/ are fine
im still updating docs
also i suggest using the git version but pinning to a commit
some small improvements that arent published yet
yeah ill finish going over all the docs and publish
that should also get rid of outdated examples
lesgo
user feedback will be nice for improvements i hope
the example runner code is really long
it is yeah, i gotta clean that up
i personally dont like when libs do that
i sincerely prefer having repeated code in examples
its a bit of a mess
hmm i see
ill clean that mess up soon, but after the updated release
ive recently been trying to get rid of some unnecessary nightly features but theres still 2 in use right now yeah :(
specialization and what else?
new_uninit, only with fsr2
maybe i can somehow have a nightly feature flag for that
i want to get rid of specialization
i think its possible but it would allow calling attach_value on a fence multiple times to replace the value inside
(instead of only allowing it on Fence<()>)
i forgot how much boilerplate code vk required
that should be easy
what happened
epic
needed to copy the example runner and include the crates and whatnot
ah hm
also apparently use order mattered i think
i dont recommend using the example runner for your actual program
that's weird, rust-analyzer is kinda broken rn
i think it's because of the toolchain
fuck it switching whole project to nightly then
indeed

goddammit
wtf
system's falling apart hold on
cool dolphin crashes cause theres no space on the drive lmao
ok sorry pengu i'm leaving phobos for later
all good
i'll have to finish the clean up program first

it's in the afterlife
ahhh i cant pick between continuing my cpp raytracer or going to rust 💀
im at like chapter 8 of the rust book rn and uh restarted my ray tracer (again)
you could restart it in rust 
lmaooo
. > does not know what a "lifetime" is
. > has only completed 8/24 chapters
. > cargo install phobos
its rustin' time 😎
As a professional C++ advocate I recommend C++
(I have stockholm syndrome)
all C++ devs got stockholm syndrome 🗣️
we can't leave its grasps
the illusion of choice:
C++
Rust but then you need to use C++ at your school/work
as a professional c# fanboy, i suggest c#
hmhmhmhmh c# does unlock unity (i do not use unity, but ue5)
On a serious note, it's not like you have to "choose" a language and be loyal to it forever
yeah for sure. fairly certain ill still c++ cuz school, ue5, and one day (never) godot
its fine you can learn stuff along the way
btw i will try to remove the nightly requirement with the next release
(but some stuff will break so you'll need to make some minor changes)
yeah 
you'll probably want to look at the rt sample
also, do phobos = { git = "https://github.com/NotAPenguin0/phobos-rs", rev = "8036bfe" } in your cargo.toml
thats the latest commit, but it wont update automatically unless you change the commit tag
also it requires nightly
(for now)
i read femboy instead of fanboy
discord is killing my neurons

big questions indeed

Danny's
Awesome
Rendering
Engine
(DARE)
heh thats kinda cool
acronyms letsss gooo
for unreal there is also unrealclr 🙂 ie c# rather than c++ when you dont want to do pluebrints
bro i cannot do blueprints for the love of my life
its so god damn messy
like let me type it bro
"yeah this blueprint is really simple and easy to follow"
sorry for off-topic
node editors 
real
spend a week in substance designer, your mind will melt and reform into a node wrangler

wait does
phobos include fsr2?
or is that separate project (Andromeda)
i really do not want to install fsr2 with all of phobos 💀
optionally
you can enable a feature flag for it
but not by default
Pog
OHHH i rmeember why i avoided rust
the foundation
Why does the lang have massive every year
💀💀💀
massive what
literally every year...
just submitted the final version of my bachelor thesis paper 
theres no defense as far as i know for this, thats only for a masters or phd i think
you can get a copy but its in dutch :(
doxxed my own name but thats alright
im surprised its in pommeslang not engrish
i hate writing technical stuff in dutch
limitation by the school?
All I read was
--- do --- your mother

Freud's thesis
there are some funny dutch words which would be weird if you read them as german as well
verkocht.... verhuuren
some words are pretty similar yeah

overboiled and selling your body (if you go 1:1 from .nl -> .de -> .us)
but it actually means... sold and rented out iirc
yep
My bachelor's has 2 defenses
And it's a huge project I don't understand why
Ooh nice!!
oh god yall do thesis's for your bachelors
I'll just do what I do best: Write utterly unhinged rants on stuff I don't even care about
I'm still in hs 🥲
I have utterly no idea how you can manage making a thesis out of pure thin air
- Pick something to study
- Study it
- Write a paper with findings
The dream
its pretty short luckily
it doesnt come out of thin air though
its the result of months of work on some topic/project
Yea I meant where the idea comes from*
Like do unis just let you pick anything and study / research it
the latter part is a little weird
i wish for students who actually want to research new shit to go for it
thats what university is all about
but so many people just graduate with something which has been invented 1000x already
yet another deferred renderer showing off sponza... with CSM and idk... som PBRIBLism
as part of their thesis/master papers
i find that super sad
(im also generally speaking)










