Jump to content

disi30

Premium Member
  • Posts

    133
  • Joined

  • Last visited

Nexus Mods Profile

About disi30

disi30's Achievements

Collaborator

Collaborator (7/14)

  • First Post
  • Collaborator Rare
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

0

Reputation

  1. disi30

    Mod size

    Yes, thank you. I just uploaded it as one file. Now thinking, I may create two uploads in the future. One for the pure audio and one for the mod (.dll etc.)
  2. disi30

    Mod size

    I created a mod for a full voice over of a game, but it's 2.5GB voice files. The audio itself is pretty compressed and most files not larger than 100kb, there are 110477 of them. What is the best way to put this mod up to Nexus?
  3. SunDirection is either already in View Space or you can move it there by multiplying it with the View-Matrix. Depth Buffer is the z value in Viewspace and runs perpendicular from the screen towards the pixel. It defines which vectors (objects) or part of in Worldspace make it onto the screen.You can control it with "Depth_check on/off" and "Depth_write on/off" in the material.
  4. Hi, every mod should contain a .mod file. Given you download a mod named "SomeMod": the file structure has to be like this: C:\...\kenshi\mods\SomeMod\SomeMod.mod
  5. Global_buffers: global_buffer 0 -> specular texture global_buffer 1 -> normal texture global_buffer 2 -> depth texture This should be passed to every pixel shader, the input depends on the vertex shader: float4 InPos : SV_POSITION, // or VPOS or POSITION is a made up name, both should be the same but SV_POSITION float2 texCoord : TEXCOORD0, // adjusted texel position float3 ray : TEXCOORD1, // or NORMAL float2 tangent : TEXCOORD2, // or TANGENT0 (lightning direction?) float2 binormal : TEXCOORD3, // or BINORMAL0 or BINORMAL float3 cameraDir : TEXCOORD4, float3 worldPos : TEXCOORD5, float4 Color : COLOR, Interesting variables for your material from common.program: shared_params SharedSkyParams { shared_param_named sunDirection float3 1 1 0 shared_param_named sunDirectionReal float3 1 1 0 shared_param_named sunColour float4 1 1 1 1 shared_param_named pFogParams float4 0 20000 38000 0 shared_param_named TIME_OF_DAY float 0.0 shared_param_named gameTime float 0.0 shared_param_named heatHaze float 0.0 shared_param_named horizonClouds float4 1 1 1 0 } shared_params SharedWaterParams { shared_param_named waterHeight float 0 shared_param_named worldOffset float3 0 0 0 // relative rendering offset shared_param_named waterHeightRel float 0 shared_param_named rainAmount float 0 shared_param_named wetness float 0 shared_param_named dustAmount float3 0 0 0 } shared_params ShadowSharedParams { shared_param_named shadowViewMat matrix4x4 shared_param_named shadowParams float4 shared_param_named biasParams float4 shared_param_named csmParams float4 [9] shared_param_named csmScale float4 [9] shared_param_named csmTrans float4 [9] shared_param_named csmUvBounds float4 [9] } shared_params ShadowMapBlurParams { shared_param_named blur float 2 shared_param_named blurDepthScale float 0 } // Shared parameters for defferred quad rendering shared_params SharedDeferredParams { shared_param_named farClip float 1 shared_param_named view matrix4x4 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 shared_param_named mat0 float4 1 0 0 0 // matrix here as setting shared matrices doesnt seem to work in DX9 shared_param_named mat1 float4 0 1 0 0 shared_param_named mat2 float4 0 0 1 0 shared_param_named camera float3 0 0 0 shared_param_named fogParams float4 0 0 0 0 shared_param_named fogColour float3 0 0 0 shared_param_named corner1 float3 0 0 0 shared_param_named corner2 float3 0 0 0 } // SkyX shared parameters for atmospheric scattering shared_params SkyXFogParams { shared_param_named uCameraPos float3 0 1 0 shared_param_named uInvWaveLength float3 9.473284438 11.76047764 26.6802131 // 1 / wavelength^4 shared_param_named uInnerRadius float 1 shared_param_named uExposure float 2 // Scattering parameters shared_param_named uKrESun float 0.32299994 shared_param_named uKr4PI float 0.0850 shared_param_named uKm4PI float 0.2008849557 // Atmosphere properties shared_param_named uScale float 4 shared_param_named uScaleDepth float 0.125 shared_param_named uScaleOverScaleDepth float 32 shared_param_named uSkydomeRadius float 70000 } // Global weather based fog parameters shared_params SharedFogParams { shared_param_named fogColour float4 1 1 1 0 shared_param_named fogDensity float 0 } // Shared parameters for debug ambient lighting shared_params AmbientParams { shared_param_named ambientParams float4 0.89 0.66 0.16 1 shared_param_named groundLight float4 0.8 0.5 0.7 0.56 shared_param_named zenithLight float3 1 1 1 shared_param_named nadirLight float3 1 1 1 shared_param_named envColour float4 1 1 1 1 shared_param_named worldSize float4 1 1 0 0 } ------------------------------------------------------- Some auto parameters for the material: param_named_auto proj projection_matrix param_named_auto viewport viewport_size param_named_auto inverseView view_matrix param_named_auto offset texel_offsets param_named_auto farClip far_clip_distance param_named_auto camPos camera_position_object_space param_named_auto texelSize inverse_texture_size 0 param_named_auto worldMatrix3x4Array world_matrix_array_3x4 param_named_auto viewProjectionMatrix viewproj_matrix param_named_auto worldMatrix world_matrix param_named_auto waterLine custom 1
  6. Kenshi shader modelling I gathered some information and experience on how shaders work in Kenshi. Most of it is pure Ogre, which helps looking up things in their manuals. File structure: MyMod/myshader.mod // the mod file we create with FCS MyMod/materials/compositors/compositors.cfg // which compositors to load, it adds to the original config and/or the one from other mods MyMod/materials/compositors/MYSHADE.compositor // what input is directed to the shader process Mymod/materials/mytexture.png // our texture image file MyMod/materials/post/MYSHADE.material // the material file MyMod/materials/post/MYSHADE.hlsl // the shader file -------------------- MyMod/MYSHADE.mod // the mod file to activate in the launcher -------------------- MyMod/materials/compositors/compositors.cfg MYSHADE // all your need to add here to get the option ingame -------------------- MyMod/materials/compositors/MYSHADE.compositor compositor_node MYSHADE { // this is the name of your material in 0 rt_output // the output of the previous shader is captured in 1 rt_input // and redirected as input of our shader target rt_output { // here we define the output into our shader pass render_quad { material MYSHADE // the material file to use with this input input 1 global_gbuffer 2 // here it uses slot 2, the "global_gbuffer 2" holds the depth texture, "global_gbuffer 1" is the normal input 2 rt_input // "input" = input, "3" = the slot for the texture (starts at 0), "rt_input" is the deferred colour } } out 0 rt_output // the output of our shader is captured out 1 rt_input // and redirected as input for the next shader } -------------------- Mymod/materials/mytexture.png // drop textures just into the materials folder -------------------- MyMod/materials/post/MYSHADE.material fragment_program myshade_ps hlsl // "myshade_ps" = name of the shader process, "hlsl" type of shader, this creates the process or instance of the shader { source MYSHADE.hlsl // the actual name of the file that contains the code target ps_4_0 // what you want to render (floating point4x4 matrix) entry_point main // which is the main function to run in the shader first enable_backwards_compatibility true // for those who want to code the shader in DX9, you can use DX11 and most DX9 functions default_params // any parameters/variables you want to pass to the process { param_named mytexturesize float 64 // name of a variable we pass to the shader param_named_auto width viewport_width // some automatic rendered information to pass to our shader param_named_auto height viewport_height shared_params_ref SharedDeferredParams // these contain some default parameters which that might be useful to the shader } } material MYSHADE // the name of the material (same as in compositor) { technique { pass { cull_hardware none // some function, see Ogre manual cull_software none // some function, see Ogre manual depth_check off // some function, see Ogre manual vertex_program_ref Posteffects/StdQuad_vp {} // the main shader process this material is connected to fragment_program_ref myshade_ps {} // the fragment program we initialised above (has to be the same name), which this input relates to texture_unit { // this sends a texture to our shader process as input 0 texture mytexture.png // send an actual texture to the shader tex_address_mode clamp // some texture option, see Ogre manual filtering none // some texture option, see Ogre manual } texture_unit { content_type Deferred GBuffer 2 // this is the depth texture, we configured in the compositor as input 1 tex_address_mode clamp filtering none } texture_unit // this is the deferred input from the previous shader, we configured in the compositor as input 2 { tex_address_mode clamp filtering none } } } } -------------------- MyMod/materials/post/MYSHADE.hlsl // here you can pretty much do what you want, but I want to highlight some things SamplerState g_samLinear // uniform sampler for DX11 { Filter = MIN_MAG_MIP_POINT; AddressU = Wrap; AddressV = Wrap; }; uniform Texture2D myTexture : register(t0); // the mytexture.png we configured in the material uniform Texture2D depthTexture : register(t1); // the depth gbuffer we configured in the material uniform Texture2D imageTexture : register(t2); // the colour texture we configured in the material float4 main( // this is the entry function we set in the material float4 posIn : SV_Position, // some minimal input of the vertex and texture coordinates float2 texCoord : TEXCOORD0, // Don't change these or it breaks the pipeline and you get weird results. float mytexturesize, // our setting from the material float width, // auto information from the material float height // auto information from the material ) : SV_Target { float4 myPixel = imageTexture.Sample(g_samLinear, texCoord); // get the original pixel float2 screensize = {width, height}; myPixel += myTexture.Sample(g_samLinear, texCoord * screensize / mytexturesize); // add your picture to it, but scale it first to screensize, watermark? myPixel *= depthTexture.Sample(g_samLinear, texCoord); // multiply it by De[a|p]th ?!?!?!?!?!?! crazy!111oneone return myPixel; // this is the return value, whatever it looks like } p.s. The auto parameter viewport_width and viewport_height do not exist, anymore? I cannot say which of these are outdated, but it is a good start.
  7. Kenshi is quite cool in this, you can nearly always "repair" the world. Remove the mods you think caused the corruption in your save. Go to the main Menu when you first start your game, choose "Import", then your savegame and it will be applied to a reset world. All building/NPC are alive and reset. For example Heft and other already hired NPC will be there again as duplicates. They will repeat the same dialogue and so on.
  8. Steam-Workshop is like cancer, even if I wanted, I don't have an account.
  9. You do realise this is a modding website? Why would I release a mod only for Steam-Users?
  10. This is why I made the enhanced texture mod. The swamps are more dark, the green areas more green and everything sharper as well.
  11. In response to post #66510146. OK, so. You have to click that link in the news, which takes you to a website. On that website you need to enter your name and email, also your Nexusmods account name. You NEED to have profile enabled on Gog.com and provide a link to said profile. All these tasks are impossible for me: Submit your GOG.com Profile URL: (https://www.gog.com/u/YourGOGcomUsername) - 1 Entry Follow @nexussites on Twitter - 1 Entry Tweet With The #NexusMods Hashtag - 1 Entry Visit Nexus Mods on Facebook - 1 Entry
  12. The only money I ever invested into modding were some sound files, Redgare reflector licence and some hex editor licence. I'll never opt-in as a hobby-modder, but anything not prompting users to pay money for downloading some file from here is great. As soon as I would ask for money, it would not be a hobby for me any more. Anyway, thanks NexusMods exists :) "embargo from the UK/UN" does that include the whole EU in the future?
  13. In response to post #55421218. #55426573, #55436688 are all replies on the same post. It just happened to me, like 15min ago.
×
×
  • Create New...