Wojtek Sterna
wojtsterna.bsky.social
Wojtek Sterna
@wojtsterna.bsky.social
Principal Engine Programmer at Flying Wild Hog 🐖
Formerly: NVIDIA, id Software, CD PROJEKT RED, Saxo Bank
Professional 🐱 petter
UE5. If you are writing a plugin which you want to work ONLY in non-shipping game/editor builds (think of a helper plugin used only during development) you can configure the uplugin file like in the screenshot below.
October 16, 2025 at 4:21 PM
UE5: So there are these comps for dealing with dynamic geometry:
- ProceduralMeshComponent
- CustomMeshComponent
- DynamicMeshComponent

Apparently starting with UE5 we should be using DynamicMeshComponent. The other two are legacy.
September 30, 2025 at 8:28 PM
Rotation of points and/or vectors is an extremely important geometrical operation. In 2D it's quite simple because there is only one axis of rotation (the axis perpendicular to the XY plane) but in 3D we have an infinite number of axes that we could rotate about.
July 29, 2025 at 8:49 AM
This is how you can inspect HLSL code of a material authored in UE material editor:
July 27, 2025 at 4:00 PM
In Unreal Engine, in the material editor there is this node called RotateAboutAxis for rotating points/vectors about a given axis and angle. Here's how it is implemented:
July 27, 2025 at 3:55 PM
If you do custom rendering in UE5, here's a pretty good series of articles

medium.com/@manning.w27...
Advanced Graphics Programming in Unreal, part 1
This is a seven-part article series.
medium.com
July 11, 2025 at 9:43 PM
For axis-angle rotation in 3D we usually use either a matrix or a quaternion. But if for some reason you do not want to involve either of these "math objects" you can use this neat formula directly: en.wikipedia.org/wiki/Rodrigu...
Rodrigues' rotation formula - Wikipedia
en.wikipedia.org
June 29, 2025 at 2:07 PM
𝗡𝗮𝗻𝗶𝘁𝗲 is pretty great. With it you can forget about LODs and always have detailed geometry, without popping, at every distance from the camera. But it does have some undesirable performance characteristics. In this post you will learn 𝘄𝗵𝘆.
June 17, 2025 at 9:11 AM
Reposted by Wojtek Sterna
This is a great thread @hillsguy.bsky.social, I'll add a bit more context here for anyone interested.

Yes there's no fancy sim - it just uses a water interaction buffer as a target for the particle system rendering, so we could use the power of particle system we already have.
Decided to check out how water is rendered in Counter-Strike 2.

Given how interactive water in CS2 is, I expected to see some cellular fluid simulation, but turns out they just use a low-resolution off-screen buffer with flat 2D decals used for various aspects of water. Reminds me of HL2 water :)
June 13, 2025 at 9:06 PM
How important is math in game development?
YES :).

I've been working on a *very* comprehensive video course on math used in video games programming (~30-35 hours). The first part (~10 hours) is up for grab for FREE.

Have a look: wojtsterna.com/math-for-3d-...
February 14, 2025 at 11:53 AM
#UnrealEngine5

Auto-attach PIX to Unreal on startup.

.
December 19, 2024 at 12:10 PM
#UnrealEngine5

This guy has a few great posts about custom (C++) rendering in Unreal Engine:
thegraphicguysquall.wordpress.com

Like this one for example:
t.co/NJmeI1gY7I
https://thegraphicguysquall.wordpress.com/2021/11/15/unreal-4-custom-mesh-pass-in-deferred-shading/
t.co
November 21, 2024 at 4:41 PM
@unrealengine.bsky.social

If your Shadow Depths pass is expensive and unstable (varies 2-8 ms if you move the camera around), here are some possible reasons:
- The landscape cast shadows
- r.Nanite.Tessellation is on
- Static meshes using WPO with ShadowCacheInvalidationBehavior=Auto
October 27, 2024 at 9:23 PM
Hello World
wojtsterna.com
October 27, 2024 at 9:21 PM