View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0005314||The Dark Mod||Graphics||public||30.07.2020 18:52||27.11.2022 14:03|
|Product Version||TDM 2.08|
|Target Version||TDM 2.11||Fixed in Version||TDM 2.11|
|Summary||0005314: While loading a game there are weird texts or graphics displayed in the first second|
|Description||The summary says it all, I would guess the screen replays a cache of some earlier readable or similar. Again this could probably be hidden by setting everything to be completely black while loading.|
|Steps To Reproduce||Just save and load a game.|
|Tags||No tags attached.|
Another problem is that player can run around for some more time after triggering load. With increased speed =)
I bumped into some code which is intended to freeze picture during map change or load process.
The entry point is idSessionLocal::StartWipe.
Basically, the current frame is captured to "_scratch" internal image.
Then the full-screen quad with material "wipeMaterial" is drawn on top of the window (idSessionLocal::DrawWipeModel).
Obviously, the material gets time parameter and can even do some fading (probably was used in Doom 3).
Right now the wipe material is simply missing, that's why player view continues to be shown.
In order to restore it, add this material to tdm_internal_engine.mtr:
Unfortunately, it gets upside-down for some reason.
I guess some magic line about texcoords can fix it.
The reason for removal was probably "optimization" =(
When wipe starts, the whole game is paused for com_wipeSeconds = 1 seconds, after which the loading actually starts.
The wipe material remains until loading ends.
I think this pause time was used to fade from screenshot into load image in Doom 3.
Anyway, instead of removing the material, better set com_wipeSeconds to something like 0.1.
Unfortunately, wipe material is not enough to restore clean visual behavior of game load.
Some random pictures popup at the moment I hit "quickload" key.
I hope Cabalistic can look into it at some moment.
|May be related to 0004623|
In svn rev 9589, I reduced com_wipeSeconds to 0.1.
This is discussed here:
By the way, I cannot reproduce the problem originally reported here.
But if I add wipe material, then I start seeing a glimpse of random letters when I start game from the menu (fullscreen),
The issue is fixed with 0006149 and svn rev 10182.
Regarding "wipe" feature.
This feature triggers when:
1) player loads game (in-game / menu, quick / normal --- does not matter)
2) player starts new game or restarts existing one
StartWipe captures current frame into _scratch texture.
Then for com_wipeSeconds duration, the game continues playing, but wipeMaterial is drawn as overlay on top of everything.
Function DrawWipeModel renders the overlay, which makes it clear that "alpha" color is set to the fade ratio.
So the simplest way to fade to a still image is to have something like this:
blend gl_src_alpha, gl_one_minus_src_alpha
map guis/assets/splash/launch // the target image
Here "colored" allows render to use the fade alpha, and "blend" enabled proper blending mode.
Another option is to read "_scratch" image, which contains still image captured when wipe sequence started:
scale 1, -1
translate 0, -1
Here scale + translate is required because otherwise screenshot will be flipped by Y coordinate.
Note that while wipe sequence is in process:
1) actual game loading is NOT done.
So the time specified in com_wipeSeconds is additional useless waiting.
2) game continues playing: player moves, objects move, AIs move, etc.
This can be avoided by having two-stage wipeMaterial: the first one overdraws everything with _scratch contents, the second one applies fading over it.
Basically, just use both of the sample materials shown above in one material in correct order.
|30.07.2020 18:52||wesp5||New Issue|
|05.12.2020 05:11||stgatilov||Note Added: 0013092|
|05.12.2020 05:12||stgatilov||Note Edited: 0013092|
|05.12.2020 05:13||stgatilov||Assigned To||=> cabalistic|
|05.12.2020 05:13||stgatilov||Status||new => assigned|
|05.12.2020 05:13||stgatilov||Product Version||=> TDM 2.08|
|05.12.2020 05:13||stgatilov||Target Version||=> TDM 2.10|
|05.12.2020 05:37||nbohr1more||Relationship added||related to 0004623|
|05.12.2020 05:38||nbohr1more||Note Added: 0013093|
|23.04.2021 06:55||stgatilov||Relationship added||related to 0005595|
|12.09.2021 05:47||stgatilov||Note Added: 0014356|
|28.12.2021 04:06||nbohr1more||Target Version||TDM 2.10 => TDM 2.11|
|11.11.2022 18:54||stgatilov||Relationship added||related to 0006149|
|15.11.2022 00:36||nbohr1more||Target Version||TDM 2.11 => TDM 2.12|
|27.11.2022 13:58||stgatilov||Note Added: 0015485|
|27.11.2022 13:59||stgatilov||Note Edited: 0015485|
|27.11.2022 14:03||stgatilov||Target Version||TDM 2.12 => TDM 2.11|
|27.11.2022 14:03||stgatilov||Assigned To||cabalistic => stgatilov|
|27.11.2022 14:03||stgatilov||Status||assigned => resolved|
|27.11.2022 14:03||stgatilov||Resolution||open => fixed|
|27.11.2022 14:03||stgatilov||Fixed in Version||=> TDM 2.11|