@lisyarus@mastodon.gamedev.place
@lisyarus@mastodon.gamedev.place avatar

lisyarus

@lisyarus@mastodon.gamedev.place

He/him

I live in a totalitarian state, teach computer graphics, and make videogames

Check out my cozy traffic simulator: https://store.steampowered.com/app/2403100/Costa_Verde_Transport_Department/

This profile is from a federated server and may be incomplete. Browse more on the original instance.

BartWronski, to random
@BartWronski@mastodon.gamedev.place avatar

ACM I3D'24 committee ready for the conference! Hope to see some of you tomorrow! :)

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@BartWronski Sick t-shirt :)

lisyarus, to random
@lisyarus@mastodon.gamedev.place avatar

So I was casually re-deriving some stuff from the VNDF sampling paper, and stumbled upon the humble "Jacobian of the reflection operator", tried computing it, and how I'm in a deep rabbit hole. Anyone got any ideas? :)

https://math.stackexchange.com/questions/4912592/jacobian-of-the-vector-reflection-operator

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

Somebody on math.se came up with a very nice argument, simply looking at how the Jacobian acts as a linear operator in a convenient basis, neat

lisyarus, to random
@lisyarus@mastodon.gamedev.place avatar

It seems that most of my problems with transparent BSDF were due to poor sampling strategy (I used uniform spherical sampling, as a baseline). After nudging VNDF to work with transmission, and using a more sane material description, I finally have a thin-glass orb :)

Though it gets darker with high roughness, so it needs some more work.

lisyarus,
@lisyarus@mastodon.gamedev.place avatar
lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@nikitonsky It is a hollow thin glass orb, it doesn't produce refraction. I'll work on thick glass a bit later

lisyarus, to random
@lisyarus@mastodon.gamedev.place avatar

Still trying to implement proper transparent bsdf in my raytracer (instead of hard-coding the refraction ray). Multiple sources and implementations use different formulas and neither of them works 😆

Also I have no idea what's happening on the screenshot

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@llemarie I had self-intersection before, yep, but I've already fixed it. This one is probably some funny floating-point stuff in evaluating the bsdf

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@bgolus I'm not even refracting anything yet, I'm struggling to implement a basic GGX transmission btdf :)

efi, to random
@efi@chitter.xyz avatar

gosh, undertale is 20 years old already??

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@efi You almost got me

thomastc, to gamedev
@thomastc@mastodon.gamedev.place avatar

Didn't get enough sleep to do coding, so I'm switching #gamedev hats and started working on some art using #blender3d, just to see how long it will take me. Here's a #sailing ship, a carrack to be precise, made in about 2 hours.
Edit: any feedback is very welcome!

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@thomastc It looks really good to me! One thing I'd try is make the wooden planks (in the texture) much longer - iirc that's how what are on actual ships

j_bertolotti, to random
@j_bertolotti@mathstodon.xyz avatar

Every time I see a "xyz explained without Math" kindnof post, I always wish more people wrote explainers WITH the Math, without skipping 90% of it, so that the explanation is actually understandable without having to rely on leaps of faith.

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@j_bertolotti +++++

To me it's like a "making pasta carbonara without ingredients" cooking post.

lisyarus, to random
@lisyarus@mastodon.gamedev.place avatar

Been trying to implement transparent BTDF. Not quite there yet...

curved_ruler, to random
@curved_ruler@mastodon.gamedev.place avatar

How would you write what vertex the cursor points to on a heightfield terrain?

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@curved_ruler My go-to solution is usually a quadtree with each node storing (min,max) height in this node, and then raymarching it, entirely skipping a node if the ray doesn't intersect the node bbox.

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@curved_ruler Btw even without a quadtree, raymarching a grid directly is extremely fast, and you can get away with it for average-sized terrains.

lisyarus, to random
@lisyarus@mastodon.gamedev.place avatar

Another weird raytracing bug! The black patches on the border are expected - these are artifacts due to having an extremely low-poly metallic surface with interpolated normals.

The white circles, however, are probably some funny floating-point business

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@vethanis Yep, I'm doing that!

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@vethanis It was the roughness, yep! I increased the minimal roughness value from 0.02 to 0.05 and it did the trick.

lisyarus, to random
@lisyarus@mastodon.gamedev.place avatar

Implemented a proper brdf (Cook-Torrance + GGX) and vndf sampling, now I can do some nicer materials! Here's a shiny ball and a golden dragon:

image/png

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@rreusser Hmm, I don't know of any!

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@llemarie Thanks! Well it's already using a BVH and it's capable of fairly large scenes, but it will be a bit slow on very large ones. I don't think I'm gonna do anything about it, though. Do you have some particular optimization in mind?

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@llemarie Oh, my raytracer runs on GPU so I'll definitely not be able to load 100Gb scenes, haha

lisyarus, to random
@lisyarus@mastodon.gamedev.place avatar

Oh no, there's some weird bug in the raytracer (this should be a fully smooth diffuse sphere)

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

Ah, that was the good old "missed one normalize call somewhere"

lisyarus,
@lisyarus@mastodon.gamedev.place avatar

@curved_ruler Yeah it's the WGSL equivalent of ternary if :)

  • All
  • Subscribed
  • Moderated
  • Favorites
  • anitta
  • thenastyranch
  • magazineikmin
  • tacticalgear
  • InstantRegret
  • ngwrru68w68
  • Durango
  • Youngstown
  • slotface
  • mdbf
  • rosin
  • PowerRangers
  • kavyap
  • DreamBathrooms
  • normalnudes
  • vwfavf
  • hgfsjryuu7
  • cisconetworking
  • osvaldo12
  • everett
  • ethstaker
  • GTA5RPClips
  • khanakhh
  • tester
  • modclub
  • cubers
  • Leos
  • provamag3
  • All magazines