VOGONS


ATI TruForm

Topic actions

Reply 40 of 53, by nX3NTY

User metadata
Rank Newbie
Rank
Newbie
KainXVIII wrote on 2021-09-12, 13:52:
nX3NTY wrote on 2021-09-12, 07:25:

Hello guys, I registered just to say thanks for making wrapper for Truform. I been waiting for a long time for someone made this a reality. I tested a couple of games Serious Sam TSE and C&C renegade, both works well with the wrapper! Performance is great with GTX 1070 at 1080p

I really can't see the difference in C&C Renegade with Curved Surfaces setting on/off (or its just not working).

For C&C Renegade you need to adjust it in the registry. Look for 'NPatches_Gap_Filling_Mode' and subsequent 'Npatches' value. Change it to 1. I forgot which one forcing it to higher level, I think Npatches control the value of tessellation where 1 is 2x, 2 is 4x 3 is 6x, while NPatches_Gap_Filling_Mode where 0 is off, 1 is on, 2 is Forced on. Just put value 2 on both so you get optimal result

truOFF.jpg
Filename
truOFF.jpg
File size
464.79 KiB
Views
384 views
File license
Public domain
truON.jpg
Filename
truON.jpg
File size
464.6 KiB
Views
385 views
File license
Public domain

Reply 41 of 53, by KainXVIII

User metadata
Rank Member
Rank
Member
nX3NTY wrote on 2021-09-22, 13:50:
KainXVIII wrote on 2021-09-12, 13:52:
nX3NTY wrote on 2021-09-12, 07:25:

Hello guys, I registered just to say thanks for making wrapper for Truform. I been waiting for a long time for someone made this a reality. I tested a couple of games Serious Sam TSE and C&C renegade, both works well with the wrapper! Performance is great with GTX 1070 at 1080p

I really can't see the difference in C&C Renegade with Curved Surfaces setting on/off (or its just not working).

For C&C Renegade you need to adjust it in the registry. Look for 'NPatches_Gap_Filling_Mode' and subsequent 'Npatches' value. Change it to 1. I forgot which one forcing it to higher level, I think Npatches control the value of tessellation where 1 is 2x, 2 is 4x 3 is 6x, while NPatches_Gap_Filling_Mode where 0 is off, 1 is on, 2 is Forced on. Just put value 2 on both so you get optimal result

Oh, thanks!

Reply 42 of 53, by Expack3

User metadata
Rank Member
Rank
Member
Dege wrote on 2021-10-02, 17:52:
========================= WIP81 ========================= […]
Show full quote

=========================
WIP81
=========================

- Replacing the FF vertex pipeline in D3Ds with a new code generator to use specialized shaders
* This might be enabled only for N-patch tesselation in subsequent versions
- Adding a option DirectXExt\NPatchTesselationLevel to force N-patch tesselation for FF/vs.1.x shader pipeline
(not recommended, it's intended for experimenting/debugging purposes)
- Adding scaling mode 'Stretched, keep aspect ratio (CRT like)'
- Fixing a minor bug in DDraw with fast videomemory access

http://dege.fw.hu/temp/dgVoodooWIP81.zip
http://dege.fw.hu/temp/dgVoodooWIP81_dbg.zip

So, I finished the new FF vertex pipeline implementation, but I'm not sure if I enable it for other than TruForm vertex processing in the final version.
The GPU performance is better for plain vertex processing as well, but not at a level that worths factoring too many specialized shaders.
Since it's a new implementation, some games/things can be broken. I'll fix reported cases.

Is the "DirectXExt\NPatchTesselationLevel" setting now part of this version of dgVoodoo2, or is it for a future version? While the listing for "Stretched, keep aspect ratio (CRT like)" is missing from the config file itself, it can be found in the configurator; yet NPatchTesselationLevel is not (this is when unlocking the configurator using the hidden menu option), nor is it in the config file itself.

Reply 43 of 53, by WSH303

User metadata
Rank Newbie
Rank
Newbie

Yup, there is no option like that in GUI, but if you will create new config using control panel, in new file you will find:

; NPatchTesselationLevel: Force N-Patch tesselation level (D3D8/9)
; 0 = app driven
; 1 = disable
; 2 to 8 = a forced tesselation level
; Altough tesselation works with all vertex shader versions, you can force level higher than 1
; only for the fixed function or vs.1.x vertex pipeline because of performance and practical reasons
; (forced tesselation is not recommended at all, anyway)

So you can try to enable it like this:

NPatchTesselationLevel = 8

So far I had not much luck in forcing NPatches, the only game that reacted in any way is FEAR, but there is no smoothing, only artifacts 😜

Attachments

  • Untitled.jpg
    Filename
    Untitled.jpg
    File size
    767.97 KiB
    Views
    250 views
    File license
    Public domain

Reply 44 of 53, by Dege

User metadata
Rank l33t
Rank
l33t

Yes, I didn't yet put that option onto the CPL GUI page, there is no room there. 😁
That page should be rearranged first.

So far I had not much luck in forcing NPatches, the only game that reacted in any way is FEAR, but there is no smoothing, only artifacts 😜

That's one of the reasons why forcing is not recommended but should be controlled by the application instead. It won't bulge polygons without vertex normals so a lot of artifacts is expected (even with UT2004 I got a lot of in forced mode).
The other is performance. Forcing only works for FF/vs.1.x, it's intentionally disabled for vertex shaders 2x/3x. Games like FEAR typically uses vs2/3 pipelines and have meshes tesselated enough by default.

Last edited by Dege on 2021-10-06, 12:02. Edited 1 time in total.

Reply 46 of 53, by Dege

User metadata
Rank l33t
Rank
l33t

For Dolphin, nothing really changed because that's using vertex shaders (1.x).
The reason for the FPS is that the demo counts its timing based on the boot-time counter. If your OS is unrebooted for days then the counter gets high which is typically a problem for many demos/games.

Reply 47 of 53, by WSH303

User metadata
Rank Newbie
Rank
Newbie

Stalker in DX8 mode. Looks like you were right about it 😁 I will try to find something that works correctly, but so far no luck 😜

Attachments

  • stalker.jpg
    Filename
    stalker.jpg
    File size
    1.35 MiB
    Views
    221 views
    File license
    Public domain

Reply 49 of 53, by nX3NTY

User metadata
Rank Newbie
Rank
Newbie

Serious Sam TSE was the easiest game to test for Truform on or off because it have its own technology demo. The last room shows model with and without truform. It can even force all models to do truform but artifacts will occur on some models like trees, vegetation etc. Serious Engine is one fun game engine that supports most, if not all, supported technologies of the time (like triple texturing which unique to original Radeon)

Attachments

  • ser2.jpg
    Filename
    ser2.jpg
    File size
    329.32 KiB
    Views
    168 views
    File license
    Public domain
  • ser.jpg
    Filename
    ser.jpg
    File size
    291.31 KiB
    Views
    168 views
    File license
    Public domain

Reply 50 of 53, by WSH303

User metadata
Rank Newbie
Rank
Newbie

But Morrowind... I wish TruForm was implemented in wider amount of games, and that ATI didn't abandoned it.

Btw. I checked FEAR again, and it seems forcing TruForm is working after all. It generates huge amount artifacts, flying triangles everywhere, but one object type is smooth - garbage bags. Garbage bags are almost photo realistic now 😁

Attachments

Reply 51 of 53, by Dege

User metadata
Rank l33t
Rank
l33t

Very nice!

Btw, I looked into Stalker DX8 mode, and found that vertex shaders of the distorted polygons uses incoming texture coordinate as integer indices into the shader constant buffer (for vertex 'animation').
So that, texture coordinates are not texture coordinates but integer indices.
This is the equivalent of BLENDINDICES of the fixed function vertex pipeline, that's mentioned in both the DX SDK and the ATI Truform docs that it's not compatible with the technology because indices cannot be interpolated across the triangle in any meaningful way (obviously).
Summarized: in this case TruForm is forced to a shader incompatible with TruForm. It can easily be the same situation with FEAR, vertex blending based on indexed matrices or weights is a very common technology for mesh animation.

But Morrowind... I wish TruForm was implemented in wider amount of games, and that ATI didn't abandoned it.

This technology was advertised in the docs as one that's compatible with traditional meshes containing normal vectors, very easy to use without the need of re-designing existing meshes, unlike with RT-patches, requiring additional information (in fact, the control points).
So, no code and mesh modification is needed, you just enable the feature through the DX API and it automatically/magicallly works.
Well, it's just partially true. Meshes contain shared vertex positions and normals for neighbour triangles, so, for keeping cornered parts of the mesh cornered, it needs to be modified not to use shared vertices for that part.
Or else you get strange things like crates pumped into a stuffed pillow. 😁
So, this technology has it own curse, maybe that's the reason not many games supported it. Or the real time performance. I didn't have the ATI hw back in the day so I myself don't have experience about how well it performed but what I read about it it wasn't stellar.

Reply 52 of 53, by RaVeN-05

User metadata
Rank Member
Rank
Member

I have 8500 and no matter what level of tesselation i set it very fast.
i have x550 (currently can't put it to pc) and in past times i get very high fps drops , the more level tesselation i set the slower rendering become.
no tess fastest
1 level of tess - fast
7 level(max) - very slow.

and some games has artifacts, scratches, holes, texture mismatch , incorrect normal point direction that leads to be curved inside.

its all about : no one cared about making models truform competible/ready and separate which parts should be tesselated which is not.
Generaly all orgenic should be tesselated, while metal is should stay as is, and optionally to rocks and other stuff.

Morrowind 2021-10-10 20-31-48.jpg File size679.92 KiBViews33 views

oh my god its very beautiful , unbelievable.

dgVoodoo makes another great thing - possibility to use reshade for any dx game)
for example there is retracing trough reshade - https://youtu.be/gHIna1MuJXs?t=515
and my experiemental shader for pixelated games like retro 2d or pseudo 3d or 3d games where you can't force bilinear filtering, so this is emitter
https://www.youtube.com/watch?v=YV__R3-qtFM&l … WhiteMagicRaven

https://hexenworld.org/forum/index.php (Heretic's & HeXen's forum)
https://www.youtube.com/user/whitemagicraven
https://go.twitch.tv/whitemagicraventv

Reply 53 of 53, by Deffnator

User metadata
Rank Member
Rank
Member
WSH303 wrote on 2021-10-10, 18:41:

But Morrowind... I wish TruForm was implemented in wider amount of games, and that ATI didn't abandoned it.

Btw. I checked FEAR again, and it seems forcing TruForm is working after all. It generates huge amount artifacts, flying triangles everywhere, but one object type is smooth - garbage bags. Garbage bags are almost photo realistic now 😁

If anything, i wish someone could link this thread at OpenMW forums and see if they can implement it back to morrowind using OpenMW.