SUBSIM Radio Room Forums



SUBSIM: The Web's #1 resource for all submarine & naval simulations since 1997

Go Back   SUBSIM Radio Room Forums > Silent Hunter 3 - 4 - 5 > SHIII Mods Workshop
Forget password? Reset here

Reply
 
Thread Tools Display Modes
Old 04-14-11, 07:52 AM   #1
Seeadler
Pacific Aces Dev Team
 
Join Date: Mar 2001
Location: Northern Germany
Posts: 1,096
Downloads: 169
Uploads: 0


Default

Quote:
Originally Posted by Rubini View Post
The hard point is that the ocean isn´t a "visible" 3D object on sh3 files, so we can´t put on it the dynamicsShadows controller...so my question is : with the Seeadler's input above (ocean pixel shaders) we can have again some hope to have shadows cast on the water?
Maybe!

In my widescreen dll I have hooked the DirectX function CreatePixelShader() and then dissassembled the buffer with the actual pixelshader code and dump it in a text file. Now I have every hardcoded pixel shader of SH3 as asm shader source code in separate files.

Unbelievable but SH3 uses only 5 pixel shaders

1 = shadow shader
2 = water reflection shader
3 = water shader
4 = terrain shader
5 = ??????

in comparison SH4 approx 200


Quote:
Originally Posted by Rubini View Post
Yes it´s true. If we could change the water pixel shader perhaps we could have finally transparent water! Yeah!
Now in a second step I loaded this simple asm shader code

Code:
ps.1.1
tex t0 
mov r0, t0
from a file into the buffer and replaced the hardcoded water shader with it. This shader code simply takes the texture stored in register t0 and moves it to the output register r0



This is just a proof of concept to change the pixel shaders in SH3 from external files such in SH4/5. It needs allot more work, ...extend to shader version 2.0, make use of more texture registers, storing own textures in the registers and so on...
Seeadler is offline   Reply With Quote
Old 04-14-11, 11:58 AM   #2
Hans Witteman
Kaleun of U-3
 
Join Date: Sep 2008
Location: somewhere in 1939
Posts: 1,816
Downloads: 123
Uploads: 0
Default

Quote:
Originally Posted by Seeadler View Post
Maybe!

In my widescreen dll I have hooked the DirectX function CreatePixelShader() and then dissassembled the buffer with the actual pixelshader code and dump it in a text file. Now I have every hardcoded pixel shader of SH3 as asm shader source code in separate files.

Unbelievable but SH3 uses only 5 pixel shaders

1 = shadow shader
2 = water reflection shader
3 = water shader
4 = terrain shader
5 = ??????

in comparison SH4 approx 200




Now in a second step I loaded this simple asm shader code

Code:
ps.1.1
tex t0 
mov r0, t0
from a file into the buffer and replaced the hardcoded water shader with it. This shader code simply takes the texture stored in register t0 and moves it to the output register r0



This is just a proof of concept to change the pixel shaders in SH3 from external files such in SH4/5. It needs allot more work, ...extend to shader version 2.0, make use of more texture registers, storing own textures in the registers and so on...
Hi mate,

Outstanding work

I try many time in the past year to make water transparency with no sucess but since i have experience in 3d i know that the reflexion use in shader might be the culprit to it.

If you go in Scene.dat and go in EnvData controller there is a water opacity set to 255 even if you change the setting nothing change in game water remain exactly as before so you can clearly see that they were planning to implemented transparency but for a reason they abandon the idea.

I also try to open the SeaInf.Raw in Env folder and change the alpha to get transparency and nothing change in game i wonder for what they use that file in game and you see here in Env.cfg it is active :

[Environment]
SeaTypeImageDimX=4320
SeaTypeImageDimY=2160
LandIDX=255
DefaultSeaType=0
SeaTypesNo=1

[SeaInfo01]
StartDate=0101
EndDate=1231
SeaInfName=SeaInf.raw
Compressed=NO

[EnvColors]
SeaType00=EnvColors_Atl.dat
SeaType80=EnvColors_Med.dat
SeaType150=EnvColors_Arct.dat

[SkyColors]
SeaType00=SkyColors_Atl.dat
SeaType80=SkyColors_Med.dat
SeaType150=SkyColors_Arct.dat

I know how shader work but unfortunately i cannot read C++ shaders coding.

Best regards Hans
__________________




Hans Witteman is offline   Reply With Quote
Old 04-14-11, 12:50 PM   #3
FIREWALL
Eternal Patrol
 
Join Date: Mar 2006
Location: CATALINA IS. SO . CAL USA
Posts: 10,108
Downloads: 511
Uploads: 0
Default

Could this be, Silent Hunter 6 ?
__________________
RIP FIREWALL

I Play GWX. Silent Hunter Who ???
FIREWALL is offline   Reply With Quote
Old 04-14-11, 12:59 PM   #4
Hans Witteman
Kaleun of U-3
 
Join Date: Sep 2008
Location: somewhere in 1939
Posts: 1,816
Downloads: 123
Uploads: 0
Default

Quote:
Originally Posted by FIREWALL View Post
Could this be, Silent Hunter 6 ?
Hi mate,

Let's say SH3 the way it should have been since release or SH3 on steroids

I learn one thing in life, when you want something in a game you like better think of do it by yourself instead of waiting for the version that would never see the light of day!

Best regards Hans
__________________




Hans Witteman is offline   Reply With Quote
Old 04-14-11, 01:13 PM   #5
Victor Schutze
Chief
 
Join Date: Mar 2010
Location: Drowning in mods soup
Posts: 327
Downloads: 466
Uploads: 0
Default

This IS SH6!

Can you name it SH6?

Just to make a point to Ubicrap how to make a game.
Victor Schutze is offline   Reply With Quote
Old 04-14-11, 01:43 PM   #6
Anvart
Admiral
 
Join Date: Jan 2006
Location: Russia ®
Posts: 2,492
Downloads: 122
Uploads: 1
Default

Quote:
Originally Posted by Hans Witteman View Post
...
I try many time in the past year to make water transparency with no sucess but ...
Best regards Hans
Do you want to have a transparent water? OK. Then you will see all the shortcomings of the primitive graphics engine ...
Sample. Object has VisibleUnderWater = false and is submerged in water ... you (camera) are over water ... You will see that object through the transparent water ... Why? because user's camera (you) is above water.
... and vice versa ...
Sample. Let's say the water is transparent (and surface without refraction and reflection) ... Submarine is surfaced, you (camera) under water ... and you will see the bubbles (above u-boat), which should be visible under water ... Why? because the camera is under water ...
...
Look at picture (my old small trick) - submarine is surfaced... camera is submerged:



Conclusion. The opacity of the water is not very big flaw ...
__________________
Alex ®


Moses said: "Don't create yourself an idol"...
Anvart is offline   Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 04:51 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright © 1995- 2025 Subsim®
"Subsim" is a registered trademark, all rights reserved.