• Butterfly
    Butterfly
    Posts: 91 from 2020/12/24
    Quote:

    I just found a problem (in tinygl.library, so affecting every driver) that caused mipmapped cube maps to fail.


    Doom3 again:

    Yep. Actually now for R200, skymap and some of the pictures on walls that failed are again rendered. In fact now they look as before cubemap was upgraded (when it was found it didn't work for years and I had a workaround in D3 that is still there just in case)....

    ... of course is equal as before because sometimes a bumpmap is applied on textures as original code does but needs (I know, I know...) Texgen R200 proper support. Theoretically it should work now for R300+. More on that later.


    Quote:

    Fixing that at least makes the ARB2 renderer in Doom 3 look a lot better, although I think there are still some issues that need fixing.



    @Bigfoot It means that you have D3 with the ARB2 render working ?

    issues: Besides a bunch of those, yep maybe going in-out a scene with some cubemap used as for example the skymap view through a window, you notice the lag/overhead there.

    @MoerBoer:

    Could be anything. Going back to r_usedrawinteraction0 option fixes the crash with ARB renderer ?

    Those "WARNING:" here and there "could" happen randomly, besides the tinygl changes. Try from cold reboots a couple of times.

    However, for BigFoot again:

    Some of the TexGenfv uses have only one of their parameters enabled as I do in draw_arb.cpp

    Code:
    GL_SelectTexture( 2 );
    qglEnable( GL_TEXTURE_GEN_S );
    qglTexGenfv( GL_S, GL_OBJECT_PLANE, din->lightProjection[3].ToFloatPtr() );
    .
    .
    qglDisable( GL_TEXTURE_GEN_S );


    But for old ATI drivers (in the old id Doom3 sources) they did this:

    Code:
    GL_SelectTexture( 2 );

    qglEnable( GL_TEXTURE_GEN_S );
    qglEnable( GL_TEXTURE_GEN_T );
    qglEnable( GL_TEXTURE_GEN_Q );

    qglTexGenfv( GL_S, GL_OBJECT_PLANE, din->lightProjection[3].ToFloatPtr() );

    idVec4 plane;
    plane[0] = 0;
    plane[1] = 0;
    plane[2] = 0;
    plane[3] = 0.5;
    qglTexGenfv( GL_T, GL_OBJECT_PLANE, plane.ToFloatPtr() );

    plane[0] = 0;
    plane[1] = 0;
    plane[2] = 0;
    plane[3] = 1;
    qglTexGenfv( GL_Q, GL_OBJECT_PLANE, plane.ToFloatPtr() );

    .
    .
    qglDisable( GL_TEXTURE_GEN_S );
    qglDisable( GL_TEXTURE_GEN_T );
    qglDisable( GL_TEXTURE_GEN_Q );



    It was an old workaround but has tinygl these missing parameters sorted out ?. Code like this is scattered here and there.

    My principal issues for morphos D3 is the lag/overhead when you confront enemies as framerate goes really down ( some kind of cycle than happens in fight ). I think new tinygl kinda fixes that a little bit when shooting is done or enemy fire balls are throwed at you but still a lot of overhead: Seen some videos of Potato Doom3 for old PC's or AOS4 and really not an overhead is showed there.

    [ Edited by Cowcat 27.12.2022 - 12:05 ]
  • »27.12.22 - 13:03
    Profile