Subnautica Texture Transparency Guide: Custom Shaders And Alpha Channel Configuration
To implement transparent textures in Subnautica, you must embed a dedicated alpha channel into a 32-bit image asset and map it to a material using a transparency-compatible shader. By modifying the asset's rendering queue to Transparent (3000) and configuring the source and destination blend states, the Unity engine will dynamically calculate opacity without visual clipping or depth sorting errors.
Technical Requirements and Software Stack for Subnautica Texture Modding
Altering texture transparency in Subnautica requires direct manipulation of Unity AssetBundles and material shader structures. Subnautica utilizes a highly customized version of the Unity engine (specifically Unity 2020.3 for the modern Living Large version, and 2019.4 for legacy versions). Because of this, standard image files cannot simply be swapped in a directory; they must be correctly compressed, assigned alpha parameters, and paired with shaders that support alpha blending or alpha testing.
Before initiating the modification process, assemble the following suite of utility software, graphics tools, and technical specifications:
- Advanced Image Editor: Adobe Photoshop, GIMP, or Paint.NET. Each must have native support for alpha channel manipulation and DirectDraw Surface (DDS) export capabilities.
- Asset Extraction Utility: Unity Asset Bundle Extractor Avalon (UABEA) or AssetRipper to unpack, edit, and repack Subnautica's compiled resource archives.
- Target Development Environment: Unity Editor (Version 2020.3.x for current Subnautica builds) to compile custom materials and shaders if you are building an independent mod.
- Compression Formats: Textures with transparency must be exported in either 32-bit PNG (uncompressed) or DDS format utilizing BC7 or DXT5 (block compression with explicit/interpolated alpha channels).
- Estimated Duration: 30 to 45 minutes for initial setup, texture configuration, and asset injection.
Detailed Workflow: Creating Alpha Channels and Configuring Shaders for Subnautica
Step 1: Constructing the Transparency Alpha Mask in Your Image Editor
To make a texture partially or fully transparent, the image file must contain four color channels: Red, Green, Blue, and Alpha (RGBA). A standard 24-bit RGB image lacks the alpha data needed to dictate transparency levels to Subnautica's rendering engine.
- Open your source texture in your chosen image editor. If the background is solid white or black, use the magic wand or lasso tool to select the areas destined for transparency.
- Delete the selected areas to create a transparent background layer. In your layers panel, this will typically show up as a gray-and-white checkerboard pattern.
- Access the Channels panel. Click the option to create a New Channel. This channel will automatically be designated as Alpha 1.
- Paste your transparency selection into the Alpha 1 channel. Within this channel, absolute black represents 100 percent transparency (completely invisible in-game), absolute white represents 100 percent opacity (completely solid), and varying shades of gray represent semi-transparency (such as glass, water, or glowing holographic displays).
- Save or export your image. If exporting as a PNG, ensure that Save Transparency is checked and the bit depth is set to 32-bit. If exporting as a DDS file, select the BC7 8bpp Fine or DXT5 Interpolated Alpha compression profile. This preserves the smooth gradients of your alpha mask.
Step 2: Extracting and Targeting the Subnautica Material
Subnautica packages its game assets inside compiled files. To apply your transparent texture to an in-game object, you must locate the specific material asset that controls how the texture reacts to light and transparency shaders.
- Launch Unity Asset Bundle Extractor (UABEA) and open the main game directory. Navigate to the Subnautica_Data folder.
- Locate and open the resources.assets file. This archive contains the majority of the game's structural materials, custom textures, and shader links.
- Use the search filter in UABEA to find the specific material associated with your target asset. For example, if you are editing a custom base poster or a window pane, search for the name of that object's material.
- Select the material asset and export it as a dump file. This generates a readable text format detailing the exact shader properties, textures, and rendering states associated with that material.
Step 3: Modifying Shader Properties for Transparency
Subnautica relies heavily on custom shaders developed by Unknown Worlds, alongside third-party shaders like Marmoset Skyshop (specifically Marmoset/UBER or Marmoset/Specular). A standard opaque shader will completely ignore any alpha channel you embedded in Step 1. To force the engine to read the alpha channel, you must modify the shader's rendering variables inside the dumped material file.
- Open the exported material dump file in a text editor like Notepad++.
- Locate the line displaying the shader path. For transparent objects, ensure the shader is set to a transparent-compatible variant. Compatible options include Marmoset/Specular, Subnautica/Custom, or Unity's Standard Shader set to a transparent blend mode.
- Modify the _Mode parameter. In Unity's standard material setup, setting _Mode to 3 configures the material to Transparent mode, while setting it to 1 configures it to Cutout mode (ideal for foliage or hard-edged transparent decals).
- Configure the _SrcBlend parameter. For smooth transparency (alpha blending), set this value to 5. This tells the renderer to multiply the incoming pixel color by its alpha value.
- Configure the _DstBlend parameter. For smooth transparency, set this value to 10. This instructs the renderer to multiply the background pixel color by one minus the source alpha value, blending the two layers seamlessly.
- Set the _ZWrite parameter to 0. This disables depth buffer writing for the transparent object, ensuring that assets positioned behind your semi-transparent texture do not get clipped out of view by the graphics card.
Step 4: Adjusting Render Queue and Depth Sorting
Transparent objects must be rendered after all opaque objects have been drawn to the screen. If a transparent object is rendered too early in the pipeline, it will cause sorting bugs, making distant water, terrains, or structures invisible when viewed through your transparent texture.
- Locate the m_CorrespondingSourceObject or m_RenderQueue fields in your material dump.
- Change the numerical value of the Render Queue to 3000. This is the standardized index for transparent materials in Unity. If your texture needs to render over other transparent elements (such as water or cockpit canopies), you can increment this value up to 3050.
- Save the modified text dump. Import the dump file back into UABEA to overwrite the original material properties.
Step 5: Packaging the Texture and Injecting into the Game Assets
The final step is to pair your transparent texture file with your newly updated material asset inside Subnautica's data files.
- In UABEA, locate the original texture file associated with your material (this is usually designated as a Texture2D asset).
- Select Plugins, then click Import PNG/DDS. Choose your newly created 32-bit image file that contains the active alpha channel.
- Once imported, click File and select Save. Save the modified resources.assets file to a temporary directory.
- Copy the newly saved resources.assets file and paste it into your Subnautica_Data folder, overwriting the default game file. Ensure you keep a clean backup of the original file in case of configuration errors.
- Boot Subnautica and test the asset in-game under various lighting conditions to verify that both the transparency and the depth sorting function correctly.
How to Make Your Own Painting Texture - HubPages
Standard Material Parameters for Transparent Shader Configuration
The table below outlines the critical internal Unity properties that must be adjusted within a material's serialized data to successfully transition an asset from opaque to transparent or cutout rendering modes.
| Parameter Name | Target Value (Transparent) | Target Value (Cutout) | Architectural Purpose |
|---|---|---|---|
| _Mode | 3 | 1 | Directs the rendering engine to process either smooth alpha blending or a binary alpha threshold mask. |
| _SrcBlend | 5 (SrcAlpha) | 1 (One) | Governs the multiplication factor for the source pixel colors during the blending pass. |
| _DstBlend | 10 (OneMinusSrcAlpha) | 0 (Zero) | Dictates how the background pixels are preserved behind the rendering boundary of the material. |
| _ZWrite | 0 (Off) | 1 (On) | Controls whether the object writes to the depth buffer, preventing spatial clipping of objects positioned behind it. |
| Render Queue | 3000 (Transparent) | 2450 (AlphaTest) | Instructs the graphics card on the exact order to draw the asset relative to terrain, skyboxes, and water surfaces. |
| _Cutoff | 0.0 (Not Applicable) | 0.5 (Standard) | Sets the specific alpha transparency threshold where a pixel is either rendered at full opacity or completely discarded. |
Solving Texture Clipping, Depth Sorting, and Shader Compilation Failures
Scenario 1: Transparent areas are solid black or solid white in-game
- Root Cause: The exported texture was saved using a compression format that stripped the alpha channel (such as 24-bit PNG or BC1/DXT1 DDS), or the material's shader is still set to an opaque rendering mode, causing it to ignore the alpha channel entirely.
- Actionable Fix: Re-open your image editor and verify that the Alpha 1 channel is present. Export the texture explicitly as a 32-bit PNG or as a DDS file compressed with BC7 or DXT5. Ensure that your material's _Mode parameter is set to 3 (Transparent) and that the shader path points to a compatible transparency shader.
Scenario 2: The texture is transparent, but it renders behind objects that are actually behind it (Depth sorting issues)
- Root Cause: The Render Queue is set too low (e.g., 2000, which is reserved for opaque geometry), or the _ZWrite property is enabled (set to 1). This tricks the GPU into thinking the transparent surface is closer to the camera than it actually is, causing the engine to discard the rendering of distant background elements.
- Actionable Fix: Open the material properties in UABEA and change the Render Queue to exactly 3000 (Transparent). Change the _ZWrite property to 0 (Off). This forces the engine to draw the background scenery first, and then overlay your transparent texture on top of it.
Scenario 3: Custom shader crashes Subnautica or renders as a bright pink/magenta texture
- Root Cause: The shader you assigned is either compiled for a different rendering pipeline (such as Unity's Universal Render Pipeline - URP, or High Definition Render Pipeline - HDRP) or was built using a newer version of Unity that is incompatible with Subnautica's specific Unity engine build.
- Actionable Fix: Recompile your asset bundles using Unity Editor 2020.3.x, ensuring that you target the legacy Built-in Render Pipeline. Avoid using custom modern HLSL shaders; instead, map your materials to Subnautica's native shaders, such as "Marmoset/UBER" or "Subnautica/Custom", which are already packaged inside the game's engine.
Scenario 4: The edges of the transparent texture look jagged, pixelated, or have weird colored halos
- Root Cause: The image editor exported the texture with straight alpha instead of premultiplied alpha, or you are utilizing an Alpha Test/Cutout shader with an un-aliased alpha map.
- Actionable Fix: When exporting from your image editor, enable the Premultiplied Alpha option if available. If using Cutout mode (Mode 1), apply a slight gaussian blur to the edges of your Alpha 1 mask to smooth the transition, and adjust the _Cutoff slider in the material properties to fine-tune where the edge threshold is drawn.
Frequently Asked Questions
What does the Russian typo "yrfvuk" mean in the context of Subnautica modding?
The term "yrfvuk" is the result of typing the word "shader" on a standard Russian keyboard layout (where 'ы' maps to 's', 'р' maps to 'h', 'ф' maps to 'a', 'в' maps to 'd', 'у' maps to 'e', and 'к' maps to 'r'). In Subnautica modding, this refers directly to the custom Unity shader materials that govern how light, transparency, and textures render on 3D models.
Which Unity shader is best for water-like or glass transparency in Subnautica mods?
For glass, ice, or water transparency inside Subnautica, the "Marmoset/UBER" shader is highly recommended. It supports advanced specular highlights, real-time environmental reflections, and smooth alpha blending, which are crucial for rendering realistic glass surfaces underwater without sacrificing performance.
Can I make base-building textures transparent without external modding tools?
No, you cannot make default textures transparent without external modding tools. Standard base-building textures are locked inside compiled .assets files, requiring tools like UABEA to unpack the materials, modify their shader parameters to support transparency, and inject your custom alpha-enabled textures back into the game files.
What is the difference between Alpha Blend and Alpha Test (Cutout) in Subnautica textures?
Alpha Blend (Mode 3) allows for smooth, semi-transparent transitions with varying degrees of opacity, making it perfect for windows, bubble trails, and holograms. Alpha Test or Cutout (Mode 1) is a binary system where a pixel is either 100 percent opaque or 100 percent invisible based on a threshold value, which is highly efficient for rendering foliage, grates, or complex metal lattices.
Elevate Your Subnautica Modding Projects
By mastering the intricacies of alpha channels and Unity's built-in material properties, you can transform the visual atmosphere of your custom underwater habitats and vehicles. Experiment with different rendering queues and specialized shaders to craft breathtaking, high-fidelity transparent equipment and decorative elements for your next Subnautica modding venture.