Tag: #rendering (20) Clear filter ×

1 story

Artemking4 finds why bone 0 breaks IMesh:DrawSkinned

Artemking4 found the root cause of the bone 0 problem in IMesh:DrawSkinned: in shaderapidx8.cpp, bone 0 is also loaded as the model matrix, so rendering breaks unless it is reset afterwards. Wrapping the call in cam.PushModelMatrix and the matching pop fixes it, and he asks for bone 0 to be exposed.

Details

Without bone 0, player and NPC models that use all 53 bones have to be split into two draw calls, which hurts performance. The issue includes screenshots and a spiral test script. It follows his earlier argument with Rubat in #next-update about whether DrawSkinned should allow bone 0.

1 story

Xenthio explains how his Source 2-style renderer works

In #developer-talk, Xenthio explained that his Source 2-style renderer is a replacement for shaderapi plus his own lightmap baker. Baking takes about 40 seconds on a map's first load; after that the map opens instantly.

Details

He plans bicubic lightmaps. Evgeny Akabenko showed a comparison and asked about seams, the main problem with bicubic filtering; Xenthio said he hasn't tackled that yet.

1 story

1 story · 1 update

1 story

1 story

1 story

Per-entity materials suggested instead of the matproxy library

In #lua-help, full metal sergeant 228 asked whether there's a better way to do controllable textures, since he heard the default matproxy library is very slow, and noted LVS creates a material per entity. Artemking4 suggested instancing a material per usage from a base material and changing only what's needed. Asked by TankNut how slow matproxy must be for that to be the alternative, he said creating materials is "dirt cheap" because they are just containers for shader inputs.

3 stories

Fading static props stop writing depth

In #next-update, Earu asked why fading static props stop writing depth while they fade out. Artemking4 and Evgeny Akabenko explained that fading props are moved to the translucent pass, and translucent objects don't write depth. In the evening discussion, Rubat asked why transparent props would write depth at all, and said alpha testing is irrelevant for fadeouts. Earu said he would remove his issue. Evgeny Akabenko and Earu then discussed dithered fades combined with TAA.

1 story

2 stories

surface.DrawTexturedRectUV stops applying sub-pixel UV adjustment

Commit 6a75b6 on main makes surface.DrawTexturedRectUV ignore the "sub pixel adjustment" of UVs so its UV arguments work as expected; only the Lua binding is affected.

Details
  • Ignore UV adjustments in surface.DrawTexturedRectUV
  • Refined DImage subrect support and KeepAspect features
  • Removed a leftover debug panel from the Paint tool; its icons keep aspect
  • Minor cleanups

1 story

is3DSkybox fix, higher quality Eli Vance face, menu state loses unused libraries

Commit 693484 on main fixes is3DSkybox not resetting when returning from hooks, ships a higher quality Eli Vance face texture from the S1 repo and removes some unused libraries from the menu state.

Details
  • Fixed the "is3DSkybox" variable not resetting when returning from hooks
  • Fixed some missing textures on Half-Life 2: Episode 2 props
  • Workaround for Portal using the same texture names as Ep2
  • Removed some unused libs from the menu state
  • "Last map" saves use a delimiter that can't naturally occur in filenames
  • The network transfer folder blacklist is now a whitelist; .ain was removed from the extension whitelist
  • Try resolving a crash with the recent change to Entity:SetPos
  • Merged pull requests: removed an unnecessary Think hook from the DOF post-processing effect; updated a comment in SurfaceProperties.txt
  • Higher quality Eli Vance face texture from the S1 repo
  • Fixed a typo in the cam.End2D underflow error message

1 story

1 story

1 story

1 story · 1 update

surface.DrawPoly now errors on fewer than 3 vertices; invisible ropes under mcore fixed

Commit 185851 on main makes surface.DrawPoly throw an error when given fewer than 3 vertices, fixes ropes turning invisible in a specific multicore setup and restores sk_auto_reload_time.

Details
  • surface.DrawPoly throws an error on invalid data (fewer than 3 verts)
  • Ropes no longer go invisible with r_queued_ropes 0; mat_queue_mode 2; gmod_mcore_test 1
  • sk_auto_reload_time works again; it requires gmod_suit 1, and a value of 0 or below disables the feature