Please use english language
It is currently 26 Feb 2020, 12:36

All times are UTC





Post new topic Reply to topic  [ 4 posts ] 
Author Message
 Post subject: Shader Script
PostPosted: 07 Mar 2016, 08:01 
Offline

Joined: 18 Sep 2015, 17:45
Posts: 4
I just wanted to know what language shaders were scripted in and if it helps, I'm specifically talking about GTA SA; I also wanted to know how to convert shaders from other games, such as from Payday, GTA V, Watch Dogs, etc. :D


Top
 Profile  
 
Tomoko
 Post subject: Re: Shader Script
PostPosted: 07 Mar 2016, 18:11 
Offline
*blah-blah-blah maniac*
User avatar

Joined: 27 Dec 2011, 08:53
Posts: 14816
Location: Russia
DirectX games using assembly code for shaders, but some (rarely) games have non compiled shaders in hlsl format (glsl for OpenGL) or more exotic custom from NVidia or per engine (like in Unity3D). Porting shaders from other games is much more complex task than writing new, because shaders are very simple by nature, rules of 3d graphics are the same.

_________________
i5-4690k, 16Gb RAM, GTX 1060 6Gb, X-Fi Titanium, Win7 x128
I am INFP, not the brutal, godamnit.


Top
 Profile  
 
 Post subject: Re: Shader Script
PostPosted: 08 Mar 2016, 18:28 
Offline

Joined: 18 Sep 2015, 17:45
Posts: 4
Thank you, is there a way to tell what language shaders are written in?


Top
 Profile  
 
 Post subject: Re: Shader Script
PostPosted: 08 Mar 2016, 20:36 
Offline
*blah-blah-blah maniac*
User avatar

Joined: 27 Dec 2011, 08:53
Posts: 14816
Location: Russia
Yes, frequently assembled contains extra information.
Below is one disassembled shader from Skyrim (game have 1526 of them), better stay away from what you want
Code:
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
//
// Parameters:
//
//   sampler2D DiffuseSampler;
//   float3 DirLightColor;
//   float3 DirLightDirection;
//   row_major float3x4 DirectionalAmbient;
//   float3 EmitColor;
//   float4 FogColor;
//   float2 LightingEffectParams;
//   float4 MaterialData;
//   sampler2D NormalSampler;
//   float3 PointLightColor[2];
//   float4 PointLightPosition[2];
//   sampler2D ShadowMaskSampler;
//   float4 SpecularColor;
//   sampler2D SubSurfaceSampler;
//   float3 TintColor;
//   float4 VPOSOffset;
//
//
// Registers:
//
//   Name                 Reg   Size
//   -------------------- ----- ----
//   DirectionalAmbient   c0       3
//   PointLightPosition   c3       2
//   PointLightColor      c5       2
//   DirLightDirection    c7       1
//   DirLightColor        c8       1
//   MaterialData         c9       1
//   EmitColor            c10      1
//   VPOSOffset           c11      1
//   SpecularColor        c12      1
//   LightingEffectParams c13      1
//   TintColor            c14      1
//   FogColor             c15      1
//   DiffuseSampler       s0       1
//   NormalSampler        s1       1
//   SubSurfaceSampler    s2       1
//   ShadowMaskSampler    s3       1
//

    ps_3_0
    def c16, 0, 0, 0, 0
    def c17, 2, -1, 1, -3
    defi i0, 2, 0, 0, 0
    dcl_texcoord v0.xy
    dcl_texcoord4 v1.xyz
    dcl_texcoord1 v2.xyz
    dcl_texcoord2 v3.xyz
    dcl_texcoord3 v4.xyz
    dcl_texcoord5 v5.xyz
    dcl_color v6.yw
    dcl_color1 v7
    dcl vPos.xy
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    dp3 r0.x, v5, v5
    rsq r0.x, r0.x
    texld r1, v0, s0
    texld r2, v0, s1
    mad r0.yzw, r2.xxyz, c17.x, c17.y
    texld r3, v0, s2
    dp3 r2.x, v2, r0.yzww
    dp3 r2.y, v3, r0.yzww
    dp3 r2.z, v4, r0.yzww
    nrm r4.xyz, r2
    mad r0.yz, vPos.xxyw, c11.xxyw, c11.xzww
    texld r5, r0.yzzw, s3
    mul r0.yzw, r5.x, c8.xxyz
    dp3 r2.x, r4, c7
    mov_sat r2.y, r2.x
    mov r5.yz, c17
    add r2.z, r5.z, c13.x
    add r2.x, r2.x, c13.x
    rcp r2.z, r2.z
    mul_sat r2.x, r2.z, r2.x
    mad r3.w, r2.x, -c17.x, -c17.w
    mul r2.x, r2.x, r2.x
    mad r5.x, r2.y, -c17.x, -c17.w
    mul r5.z, r2.y, r2.y
    mul r5.x, r5.z, r5.x
    mad_sat r2.x, r3.w, r2.x, -r5.x
    mul r5.xzw, r2.x, c8.xyyz
    mul r5.xzw, r3.xyyz, r5
    mad r5.xzw, r0.yyzw, r2.y, r5
    mad r6.xyz, v5, r0.x, c7
    nrm r7.xyz, r6
    dp3_sat r2.x, r7, r4
    pow r3.w, r2.x, c12.w
    mul r0.yzw, r0, r3.w
    mov r6.xyz, r5.xzww
    mov r7.xyz, r0.yzww
    mov r2.x, c16.x
    rep i0
      mov r8, c3
      cmp r8, -r2.x, r8, c4
      add r8.xyz, r8, -v1
      dp3 r2.y, r8, r8
      rsq r2.y, r2.y
      rcp r3.w, r2.y
      rcp r6.w, r8.w
      mul_sat r3.w, r3.w, r6.w
      mad r3.w, r3.w, -r3.w, c17.z
      mov r9.xyz, c5
      cmp r9.xyz, -r2.x, r9, c6
      mul r10.xyz, r2.y, r8
      dp3_sat r2.y, r4, r10
      dp3 r6.w, r4, r8
      add r7.w, r6.w, c13.x
      mul_sat r7.w, r2.z, r7.w
      mad r8.x, r7.w, -c17.x, -c17.w
      mul r7.w, r7.w, r7.w
      mov_sat r6.w, r6.w
      mad r8.y, r6.w, -c17.x, -c17.w
      mul r6.w, r6.w, r6.w
      mul r6.w, r6.w, r8.y
      mad_sat r6.w, r8.x, r7.w, -r6.w
      mul r8.xyz, r9, r6.w
      mul r8.xyz, r3, r8
      mad r8.xyz, r9, r2.y, r8
      mad r10.xyz, v5, r0.x, r10
      nrm r11.xyz, r10
      dp3_sat r2.y, r11, r4
      pow r6.w, r2.y, c12.w
      mul r9.xyz, r6.w, r9
      mad r7.xyz, r9, r3.w, r7
      mad r6.xyz, r8, r3.w, r6
      add r2.x, r2.x, c17.z
    endrep
    mov r4.w, c17.z
    dp4 r0.x, c0, r4
    dp4 r0.y, c1, r4
    dp4 r0.z, c2, r4
    add r0.xyz, r0, c10
    add r0.xyz, r6, r0
    mul r0.xyz, r1, r0
    add r1.xyz, r5.y, c14
    mad r1.xyz, v6.y, r1, c17.z
    mul r2.xyz, r2.w, r7
    mul r2.xyz, r2, c9.y
    mul r2.xyz, r2, c12
    mad r0.xyz, r0, r1, r2
    mul r0.w, r1.w, c9.z
    mul_pp oC0.w, r0.w, v6.w
    lrp r1.xyz, v7.w, v7, r0
    mul_pp oC0.xyz, r1, c15.w

// approximately 103 instruction slots used (4 texture, 99 arithmetic)
 

_________________
i5-4690k, 16Gb RAM, GTX 1060 6Gb, X-Fi Titanium, Win7 x128
I am INFP, not the brutal, godamnit.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

All times are UTC


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Powered by phpBB® Forum Software © phpBB Group