Hillsguy

@hillsguy.bsky.social

hi hemlo i struggle with developing videogames my games: https://samael-kethill.itch.io

Downloaded 763 1k ARM textures from polyhaven and tested b7enc and my encoder (with 4x4 principal axis) using SSIM, RMSE and LPIPS I used L5 bc7enc mode as L18 is too slow and L5 seems to be closer to my encoder under the hood So my encoder seems to score better only on LPIPS...

Bild

Found another heuristic for improving visual quality of BC1 textures with channel packing. The idea is to calculate principal axis using pixels from the adjacent blocks. This essentially blurs hue and can reduce detail of channels parallel to PA, but this also reduces artifacts on block boundaries.

BildRed, green and blue channels of bc7enc, experimental encoder with PA calculated using 4x4 and 6x6 blocks

Experimenting with S3TC/BC1/DXT1 compression. The idea is to intentionally leak channel data into each other to reduce blockiness and get at least some data instead of averaged out 4x4 blocks.

Bild

Came up with a cursed workaround for baking bent normals purely in Blender 3D using the raycast shader node. Bent normals are usually used for self-shadowing and reflection occlusion. 1. Regular normal map 2. Normal map + raytraced shadows 3. Normal map + bent normal map #b3d

BildBildBildBild

Ray-traced reference vs spherical harmonics (L0+L1) 1024x lightmap vs per-channel AHD (dominant direction) irradz 1024x lightmap I can barely see any difference...

BildBildBild

Trying to approximate flashlight in M3G (~OpenGL ES 1.1) 1. Disable all scene lights, enable omni light at player position 2. Render the scene 3. Render flat 2D flashlight mask 4. Disable flashlight omni light, enable other scene lights 5. Render the scene again using additive blending 6. Voila?

BildBildThis is how scene looks like with scene lights enabled but without flashlightBild

Spent my whole January working on a new MascotCapsule v3 implementation in pure MIDP 2.0 Now you can run games previously exclusive to Sony Ericsson phones on any powerful enough J2ME cellphone or easily add MCv3 support to your J2ME emulator without worrying about OpenGL/ES support

Don't look at Nokia N70 and Samsung Champ, they are too slow for thisBildBildBild

So, it turns out, to achieve good looking caustics in Blender with Cycles you need to disable "filter gloss" option and NOT use "cast/receive shadow caustics" options

Bild

Silent Hill 4 uses interesting volumetric light / light glare approximation. Instead of drawing sprites at each light source, full-screen subdivided plane with procedural vertex colors is rendered and blended with game frame. #gamedev

BildBildBildBild

Was wondering why vertex lighting looks ugly in linear RGB compared to sRGB Turns out it's due to interpolation in linear color space. Interpolating sqrt(col) fixes the issue I also tried sqrt(1/col) but it looks wrong on smooth normals I wonder if this can be applied to lightmaps too

Regular vertex lighting in sRGBRegular vertex lighting in linear RGBVertex lighting in linear RGB with sqrt(col) interpolationVertex lighting in linear RGB with sqrt(1/col) interpolation (I use invsqr distance attenuation)