János Turánszki Profile Banner
János Turánszki Profile
János Turánszki

@turanszkij

Followers
8,236
Following
313
Media
426
Statuses
2,124

Developer of Wicked Engine. Previously at PlayStation Devtech and Neocore Games. El. Psy. Kongroo.

Joined July 2009
Don't wanna be here? Send us removal request.
Explore trending content on Musk Viewer
Pinned Tweet
@turanszkij
János Turánszki
3 years
I'm trying to take Wicked Engine to the next level, so created a Patreon page where people can support the project:
2
33
132
@turanszkij
János Turánszki
1 month
SSGI test with only emissive particles:
18
80
800
@turanszkij
János Turánszki
10 months
A simple way to draw anti aliased geometry. It doesn't require using MSAA or any shader trickery, just good old alpha blending and vertex colors:
Tweet media one
Tweet media two
Tweet media three
Tweet media four
20
67
779
@turanszkij
János Turánszki
2 months
Path finding enabled in the character sample:
14
39
682
@turanszkij
János Turánszki
2 years
A combination of CPU and GPU physics: CPU for the falling capsules and collision with terrain (Bullet physics), and custom GPU colliders for colliding with grass particle system.
9
52
665
@turanszkij
János Turánszki
5 years
If you want to render a cube without normals, uvs or anything, I really like the following hack: draw a 14-vertex triangle strip and use the following code in the VS. Really useful for decals, envprobe proxies, occludees, etc. I didn't come up with it:
Tweet media one
7
103
529
@turanszkij
János Turánszki
1 month
Trying to implement SSGI (Screen Space Global Illumination) in Wicked Engine:
11
31
529
@turanszkij
János Turánszki
10 months
When you are developing graphics on Nvidia GPU, you can easily do something that looks correct, but breaks on AMD. These are the things that even the debug layer cannot validate:
15
70
503
@turanszkij
János Turánszki
2 years
First look at Dynamic Diffuse Global Illumination (DDGI) in Wicked Engine: (DX12, Vulkan, software and hardware raytracing implementations)
7
53
494
@turanszkij
János Turánszki
6 months
Simple water ripple effect can be created by blending normal map sprites together:
9
33
463
@turanszkij
János Turánszki
1 year
Finally, Vulkan video works in Wicked Engine! Videos can be added to any object in the scene. Lots of HD videos can be decoded in real time at once:
12
24
420
@turanszkij
János Turánszki
3 years
Removed DX11 from Wicked Engine, to allow more efficient use of Vulkan and DX12. Lots of rewrites to make use of bindless, persistent mapping, visibility buffers and more. Surfel GI is also in. And leaving some path traced renders here:
Tweet media one
Tweet media two
Tweet media three
Tweet media four
12
34
397
@turanszkij
János Turánszki
1 year
Extending point lights in Wicked Engine with a radius and length. Ray traced shadows with AMD denoiser:
11
22
401
@turanszkij
János Turánszki
2 years
Sparse textures on terrain surface. Chunks close to the camera use up to 16k * 16k texture resolution (1 chunk = 64*64 meters). But the texture memory usage is reduced (< 256 MB), because only those parts are allocated which the GPU uses.
8
30
391
@turanszkij
János Turánszki
2 months
The voxelized scene for path finding can also be used for character occlusion testing:
7
31
385
@turanszkij
János Turánszki
10 months
Read below how you can create progress bar animations with using a gradient image like this:
Tweet media one
4
38
376
@turanszkij
János Turánszki
2 years
200 point lights with transparent shadow maps:
8
31
374
@turanszkij
János Turánszki
5 years
Wrote a new blog post: Improved normal reconstruction from depth Mainly used this technique to improve SSAO, check it out: #gamedev #graphics #programming
3
89
364
@turanszkij
János Turánszki
2 years
I added stars to the sky. They are created by a per pixel gradient noise:
7
22
346
@turanszkij
János Turánszki
1 year
Virtual textures updated to support 64k * 64k resolution close to camera. Now it uses texture atlas based on Far Cry 4 presentation. Sparse mapping is no longer updated per frame, but only used for aliasing, to write block compressed textures. Textures use max 340 MB memory.
11
32
344
@turanszkij
János Turánszki
27 days
Searching for cover in voxel path finding, debugging view:
3
28
336
@turanszkij
János Turánszki
3 years
Wicked Engine now supports the emitted particle systems in all raytracing effects. Some images from path tracing renderer:
Tweet media one
Tweet media two
Tweet media three
Tweet media four
8
35
329
@turanszkij
János Turánszki
2 years
I'm working on sparse texture for terrain (megatexture). GPU can request tiles for specific mip levels to be mapped/unmapped. Adding these debug visualizers was a must. Works in Vulkan and DX12, now I will need to scale it up and optimize.
9
26
323
@turanszkij
János Turánszki
7 months
Completely rewritten for the rain effect since last video as a particle system (previously it was a scrolling noise). Now it also generates splashes for each particle that hits an object:
10
26
305
@turanszkij
János Turánszki
2 years
200 dynamic point light shadows in Sponza: I changed the shadowmap storage from texture arrays to an atlas, so each light can have dynamic resolution shadow. Also, there is no separate texture for cubemaps any more, they are packed with the others.
10
28
299
@turanszkij
János Turánszki
10 months
Breakdown of the bloom effect in Wicked Engine:
Tweet media one
5
22
298
@turanszkij
János Turánszki
10 months
Running through Sponza with many shadow casting lights. Read about some tricks below that Wicked Engine uses to render lots of dynamic shadow maps:
4
28
297
@turanszkij
János Turánszki
10 months
Volumetric lights with transparent shadow maps, read below how they are rendered:
4
43
291
@turanszkij
János Turánszki
2 years
Wicked Engine is coming to Steam on September 1:
14
34
288
@turanszkij
János Turánszki
3 months
I'm testing voxelization on CPU, want to use it for path finding:
5
21
293
@turanszkij
János Turánszki
2 years
Written a post about derivatives in compute shaders:
1
56
283
@turanszkij
János Turánszki
1 month
Breakdown of how my SSGI was rendered: 1) Depth and light buffer are downscaled and de-interleaved into multiple resolution texture arrays. Each resolution has 16 layers containing sample information of a higher resolution. Normal buffer is downscaled into just mips.
7
37
280
@turanszkij
János Turánszki
1 year
Improved fog now works consistently with the sky and clouds. Volumetric clouds can also receive shadows now. This is Wicked Engine's weather system upgraded by Kliaxe:
6
17
275
@turanszkij
János Turánszki
10 months
You can notice that the image is made up of two triangles if you focus on the distortion on the left. It is caused by UV interpolation in hardware, and you can fix this by computing UVs in the pixel shader instead. This blog by Nathan Reed describes how:
7
36
267
@turanszkij
János Turánszki
1 year
Voxel GI in Pica Pica scene:
4
18
263
@turanszkij
János Turánszki
2 years
Volumetric clouds fly-through in Wicked Engine:
4
17
260
@turanszkij
János Turánszki
17 days
Added multi-scale mean estimator to DDGI (also used in surfel GI), this makes it faster react to lighting changes. And now it also uses real-time BC6 compression.
8
22
263
@turanszkij
János Turánszki
4 years
The new blog is about my first impressions with Variable Rate Shading in DX12: #gamedev
7
73
257
@turanszkij
János Turánszki
2 years
Fighting game in Sponza: (Haven't tested much with two players, the handling is awkward)
10
23
245
@turanszkij
János Turánszki
2 years
The grass particles look pretty nice with raytraced ambient occlusion and shadows:
7
12
244
@turanszkij
János Turánszki
2 months
The voxelized path finding in Wicked Engine supports ground and air traversal:
4
12
246
@turanszkij
János Turánszki
2 years
You can pet the grass:
8
11
236
@turanszkij
János Turánszki
3 years
I've written a new blog about some experiments to reduce vertex shader work: #gamedev
3
58
235
@turanszkij
János Turánszki
2 years
After 3 days of matrix multiplication order hell, managed to implement animation retargeting. Works with humanoid rigs that have different proportions and sources (Mixamo animation to VRM model):
10
17
235
@turanszkij
János Turánszki
18 days
Added better directional irradiance to surfel GI, and it's compressed to BC6 in real time. The bottom shows a debug view:
5
24
235
@turanszkij
János Turánszki
10 months
Added support for OpenImageDenoise 2.0 GPU API to Wicked Engine (path trace, lightmaps). The new GPU denoiser is a lot faster than the CPU one. It required one API change, to upload and download image data using oidn::BufferRef instead of raw pointers.
Tweet media one
4
20
229
@turanszkij
János Turánszki
3 years
Diffuse GI with surfels (WIP) After much tweaking, still too much noise and performance could be better, but starting to look good.
4
13
227
@turanszkij
János Turánszki
3 years
My new blog about graphics API abstraction can be read here: #gamedev
5
51
223
@turanszkij
János Turánszki
2 months
Updated FPS sample for Wicked Engine now has enemy logic:
9
18
226
@turanszkij
János Turánszki
6 months
Wicked Engine now does ragdoll physics!
3
15
221
@turanszkij
János Turánszki
7 months
I think I've found the worst example ever for water refraction shader. I like this game, but come on. :D So I thought I describe quickly how to fix it:
6
21
220
@turanszkij
János Turánszki
7 months
It's a rainy day in Sponza. I'm trying to create a rain effect in Wicked Engine:
10
14
219
@turanszkij
János Turánszki
1 year
After 5 years, I'm updating the voxel GI in Wicked Engine again, adding anisotropic voxels and clip maps. Not complete yet because the performance is awful, but it works now:
3
13
214
@turanszkij
János Turánszki
4 years
Wrote a new blog post to start the year: Tile-based optimization for post processing. I hope someone will find it useful. #gamedev #graphics #programming
3
62
215
@turanszkij
János Turánszki
2 years
Terrain generation is not very good at large scale yet. Current solution is simply uniform sized chunks in a hash map. I would like to have planet sized terrain next.
6
12
213
@turanszkij
János Turánszki
10 months
Thread on how to create this stencil highlight effect:
Tweet media one
4
24
212
@turanszkij
János Turánszki
2 years
cs_italy lightmapped in Wicked Engine:
8
9
209
@turanszkij
János Turánszki
15 days
Even with the dynamic DDGI probe offsets, sometimes they can get stuck in closed tight spots. Now if the scene has a voxelization, the probes can use it to unstuck themselves into the nearest empty voxel:
7
15
212
@turanszkij
János Turánszki
8 months
In the Unity controversy some people are finding out about Wicked Engine in search of a new engine. Here is a little highlight showcase, and a thread of how Wicked Engine is different to Unity:
5
35
203
@turanszkij
János Turánszki
5 years
Last year I did a BVH builder on GPU, here are some timings (DX11, GTX 1050): - City (94K tris): 2.6 ms - Sponza (262K tris): 9.4 ms - Living room (580K tris): 14 ms - Lumberyard Bistro (3.8M tris): 102 ms How to implement BVH building on GPU:
Tweet media one
Tweet media two
Tweet media three
Tweet media four
5
45
201
@turanszkij
János Turánszki
5 years
New blog is out: Entity-component system - simple implementation - data oriented design - scene graph use case - serialization #gamedev #programming
3
44
202
@turanszkij
János Turánszki
2 years
I released 3 presentations from the development process of Surfel GI in Wicked Engine (inspired by Pica-Pica tech demo). They were made for the D5 Render company who was sponsoring the experiment last summer:
2
28
201
@turanszkij
János Turánszki
1 year
You can read my new blog about Vulkan video decoding here:
2
41
200
@turanszkij
János Turánszki
11 months
Added a little bending to the grass by camera up vector. This helps when looking at the billboards from above:
Tweet media one
Tweet media two
4
19
199
@turanszkij
János Turánszki
2 months
This shows how the opening doors open a walkable pathway for NPCs by re-voxelizing the scene, and also they don't get stuck on tight paths inside the house.
2
16
200
@turanszkij
János Turánszki
8 months
Started a new FPS sample for Wicked Engine. Managed to put in everything that I planned in a weekend's work: - keyboard and controller support - hard coded weapon animations - movement, crouching, jumping - muzzle flash particle system - aim down the sights - bullet holes - sound
10
17
195
@turanszkij
János Turánszki
8 months
I created a very simple DDS image writer for C++. Single header, no dependency, supported image types: - Texture1D - Texture2D - Texture2DArray - TextureCube - TextureCubeArray - Texture3D - mipmaps - any DXGI format No legacy, only compatible with DX10+.
3
39
196
@turanszkij
János Turánszki
3 years
Surfels remember their primitive ID and barycentrics, so they can stick to dynamic geometry. I used a triangle visibility buffer and bindless descriptors to implement it.
3
22
193
@turanszkij
János Turánszki
4 years
Variable Rate Shading is now available in Wicked Engine (DX12 mode). Shading resolution can be reduced for materials, particle systems, and screen space velocity. It was surprisingly painless to implement. As always, implementation on Github: #gamedev
Tweet media one
Tweet media two
Tweet media three
2
30
183
@turanszkij
János Turánszki
2 months
Made this little trail renderer for Wicked Engine:
9
6
185
@turanszkij
János Turánszki
2 years
I made some underwater effects in Wicked Engine:
5
9
179
@turanszkij
János Turánszki
24 days
Adding material paint support for the terrain virtual texture system. It can use "unlimited" amount of layers:
3
10
179
@turanszkij
János Turánszki
6 years
New blog: Optimizing tile-based light culling. Some practical tips and implementations I learned along the way. #gamedev #indiedev #graphics
5
55
176
@turanszkij
János Turánszki
4 years
Last week someone by the username Kliaxe dropped in an upgraded Screen Space Reflections implementation to Wicked Engine. It is based on the Siggraph 2015 presentation "Stochastic Screen Space Reflections". Slides: Wicked Engine:
Tweet media one
1
30
167
@turanszkij
János Turánszki
3 months
After some refinements and fixes, the path simplification can avoid these harder cases like short turns around corners, or long path smoothed too much near a wall. I think I'm done with this debug scene.
3
16
169
@turanszkij
János Turánszki
23 days
Testing a method to blend objects into the terrain surface. This allows the terrain virtual texture and height to be sampled at pixels' world position and blended in to the object's texture. The terrain normal is computed from the height and also blended with the object normal.
4
7
168
@turanszkij
János Turánszki
2 years
I created this procedural terrain generator in Wicked Engine:
5
12
164
@turanszkij
János Turánszki
3 months
My first time implementing path finding, this is the A* algorithm on the dynamically voxelized scene in Wicked Engine:
4
8
164
@turanszkij
János Turánszki
6 months
I created a new blog post about vertex buffers, focusing on different formats and packing:
1
28
164
@turanszkij
János Turánszki
1 year
Upgraded Wicked Engine's profiler with this little graph recently. Makes it very obvious to spot performance spikes compared to just listing the times:
2
4
162
@turanszkij
János Turánszki
3 years
Experimented today with volumetric cloud parameters in Wicked Engine
Tweet media one
Tweet media two
Tweet media three
Tweet media four
5
12
158
@turanszkij
János Turánszki
9 months
Wicked Engine now works on the PlayStation 5! Also a big website update:
Tweet media one
6
16
158
@turanszkij
János Turánszki
1 month
Managed to improve the performance and quality of SSGI. Now it doesn't use dithering, but a wider uniform sampling. Also caching more stuff in groupshared memory. Still have to apply too much blur, so sadly much of the shape of shadows is lost. But pretty stable in motion now.
2
9
158
@turanszkij
János Turánszki
1 year
The number structures you need to create for decoding H264 video in Vulkan vs. DX12:
Tweet media one
Tweet media two
7
10
152
@turanszkij
János Turánszki
2 years
My former colleague, single-handedly developing a realistic racing simulator with his own engine (using DirectX 8 for graphics!). Very much worth a follow.
@bmarci7
Marcell Baranyai
2 years
Dealing with track recovery for a few days now. I added some debug keys to take over AI vehicles so I can ruin their control, or just set up unwanted situations. Not always perfect, but it's kinda ok for my hobby game :) #gamedev #IndieGameDev #simulator #hungame
2
8
92
6
11
156
@turanszkij
János Turánszki
4 years
Pulled some all nighters during the holidays to implement the "scatter-as-you-gather" depth of field and motion blur effects from Jorge Jimenez's Siggraph 2014 talk. Some optimizations are still missing, but I'm happy with the look. :)
Tweet media one
Tweet media two
Tweet media three
3
26
155
@turanszkij
János Turánszki
3 years
Some improvements to the transparent shadow mapping technique to better handle the volumetric lights. Updated my old blog too: #gamedev
3
26
152
@turanszkij
János Turánszki
2 years
You can write graphics code like this in Wicked Engine:
Tweet media one
3
8
149
@turanszkij
János Turánszki
3 months
Simplification and smoothing the pathfinding result. For every voxel waypoint, DDA line drawing algorithm is used to detect occlusion of upcoming waypoints, this way many of them can be removed. The path is then smoothed by a Catmull-Rom spline.
2
14
148
@turanszkij
János Turánszki
3 years
New blog from me, writing about some Vulkan and DX12 goodies: #gamedev
3
35
146
@turanszkij
János Turánszki
2 years
Generating terrain, please wait...
1
8
142
@turanszkij
János Turánszki
5 years
My new blog is out: "Thoughts on light culling: stream compaction vs flat bit arrays" Revisiting forward+ with some neato results, enjoy :)
Tweet media one
1
48
141
@turanszkij
János Turánszki
2 years
Wicked Engine has been released on Steam just now:
6
23
139
@turanszkij
János Turánszki
5 years
Compute shader race condition bug^^
9
15
139
@turanszkij
János Turánszki
5 years
My new blog post just materialized: Simple job system using standard C++ :) #gamedev #programming
2
27
134
@turanszkij
János Turánszki
3 years
Added the FidelityFX denoiser to Wicked Engine (for raytraced shadows and ambient occlusion)
Tweet media one
Tweet media two
Tweet media three
5
13
133
@turanszkij
János Turánszki
7 months
Needed to debug raytracing in Wicked Engine terrain again. Nvidia Nsight raytracing debugger was very useful. A little fly-through video of using the tool:
2
6
129
@turanszkij
János Turánszki
2 years
Progress of Wicked Engine's GUI from 2016 to 2022. I'm developing it alongside the rest of the engine, from scratch. Made some big improvements this week:
Tweet media one
Tweet media two
Tweet media three
Tweet media four
8
7
130