39 changed files with 1984 additions and 70 deletions
-
1221Assets/Scenes/SplitScreenTest.unity
-
7Assets/Scenes/SplitScreenTest.unity.meta
-
3Assets/Scripts/Data/QConstants.cs
-
8Assets/Scripts/Game/Entity.cs
-
41Assets/Scripts/Game/GameAssets.cs
-
51Assets/Scripts/Game/GameState.cs
-
9Assets/Scripts/Layers.cs
-
6Assets/Scripts/Modules/GameModule.Interop.cs
-
4Assets/Scripts/Modules/GameModule.cs
-
16Assets/Scripts/Modules/RenderModule.Interop.cs
-
9Assets/Scripts/Modules/RenderModule.cs
-
63Assets/Scripts/SplitScreenTest.cs
-
11Assets/Scripts/SplitScreenTest.cs.meta
-
62Assets/Scripts/Support/AliasModel.cs
-
11Assets/Scripts/UniQuake.Interop.cs
-
3Assets/Scripts/UniQuake.cs
-
52Assets/Scripts/VisualStyle.cs
-
8Assets/Shaders.meta
-
122Assets/Shaders/Quake.shader
-
10Assets/Shaders/Quake.shader.meta
-
157Assets/Shaders/QuakeForwardPass.hlsl
-
10Assets/Shaders/QuakeForwardPass.hlsl.meta
-
51Assets/Shaders/QuakeInput.hlsl
-
10Assets/Shaders/QuakeInput.hlsl.meta
-
4Assets/Styles/GLQuake/GLQuake.asset
-
13Assets/Styles/GLQuake/Materials/GLQuake_Entity.mat
-
13Assets/Styles/GLQuake/Materials/GLQuake_World.mat
-
26Assets/Styles/GLQuake/Software.asset
-
8Assets/Styles/GLQuake/Software.asset.meta
-
2ProjectSettings/GraphicsSettings.asset
-
2ProjectSettings/ProjectSettings.asset
-
12ProjectSettings/TagManager.asset
-
2engine/Quake/client.h
-
1engine/Quake/gl_texmgr.h
-
5engine/Quake/r_alias.c
-
4engine/Quake/r_brush.c
-
6engine/UniQuake/game_uniquake.c
-
6engine/UniQuake/gl_uniquake.c
-
5engine/UniQuake/vid_uniquake.c
1221
Assets/Scenes/SplitScreenTest.unity
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,7 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 4ca6e7235b69a0d4dbe7cadc2b23fb6e |
||||
|
DefaultImporter: |
||||
|
externalObjects: {} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
||||
@ -0,0 +1,63 @@ |
|||||
|
using System; |
||||
|
using System.Collections; |
||||
|
using System.Collections.Generic; |
||||
|
using UnityEngine; |
||||
|
|
||||
|
public class SplitScreenTest : MonoBehaviour |
||||
|
{ |
||||
|
[SerializeField] |
||||
|
private GameInstance[] gameInstances = new GameInstance[4]; |
||||
|
|
||||
|
[SerializeField] |
||||
|
private List<VisualStyle> visualStyles = new List<VisualStyle>(); |
||||
|
|
||||
|
private void Start() |
||||
|
{ |
||||
|
Debug.Log($"Running in {IntPtr.Size * 8}-bit mode"); |
||||
|
|
||||
|
Layers gameLayer = Layers.Game1; |
||||
|
Layers viewLayer = Layers.ViewModel1; |
||||
|
int layerStride = Layers.Game2 - Layers.Game1; |
||||
|
|
||||
|
foreach (var gameInstance in gameInstances) |
||||
|
{ |
||||
|
if (gameInstance == null || gameInstance.mainCamera == null) |
||||
|
continue; |
||||
|
|
||||
|
var uq = gameObject.AddComponent<UniQuake>(); |
||||
|
uq.BaseGame = gameInstance.baseGame; |
||||
|
uq.ModDirectory = gameInstance.modPath; |
||||
|
uq.AdditionalArguments = ParseArgs(gameInstance.arguments); |
||||
|
uq.Camera = gameInstance.mainCamera; |
||||
|
uq.GameLayer = gameLayer; |
||||
|
uq.ViewModelLayer = viewLayer; |
||||
|
uq.LibraryOverride = gameInstance.libraryName; |
||||
|
uq.SetVisualStyle(visualStyles[0]); |
||||
|
|
||||
|
gameLayer += layerStride; |
||||
|
viewLayer += layerStride; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
private string[] ParseArgs(string args) |
||||
|
{ |
||||
|
if (args == null) |
||||
|
return new string[0]; |
||||
|
|
||||
|
return args.Split(new[] {' ', '\t', '\r', '\n'}, StringSplitOptions.RemoveEmptyEntries); |
||||
|
} |
||||
|
|
||||
|
[Serializable] |
||||
|
public class GameInstance |
||||
|
{ |
||||
|
public Camera mainCamera; |
||||
|
|
||||
|
public MissionPack baseGame; |
||||
|
|
||||
|
public string modPath; |
||||
|
|
||||
|
public string arguments; |
||||
|
|
||||
|
public string libraryName; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,11 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 47d8bb9d10da63c4d9b96cb96a94aca3 |
||||
|
MonoImporter: |
||||
|
externalObjects: {} |
||||
|
serializedVersion: 2 |
||||
|
defaultReferences: [] |
||||
|
executionOrder: 0 |
||||
|
icon: {instanceID: 0} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
||||
@ -0,0 +1,8 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 96c36a1f940f3094689bb6a4848af311 |
||||
|
folderAsset: yes |
||||
|
DefaultImporter: |
||||
|
externalObjects: {} |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
||||
@ -0,0 +1,122 @@ |
|||||
|
// Shader targeted for low end devices. Single Pass Forward Rendering. |
||||
|
Shader "UniQuake/Quake" |
||||
|
{ |
||||
|
Properties |
||||
|
{ |
||||
|
[MainTexture] _BaseMap("Base Map (RGB) Alpha (A)", 2D) = "white" {} |
||||
|
[MainColor] _BaseColor("Base Color", Color) = (1, 1, 1, 1) |
||||
|
|
||||
|
[NoScaleOffset] _LightMap("Lightmap (RGBA)", 2D) = "white" {} |
||||
|
|
||||
|
_Cutoff("Alpha Clipping", Range(0.0, 1.0)) = 0.666 |
||||
|
|
||||
|
[HDR] _EmissionColor("Emission Color", Color) = (0,0,0) |
||||
|
[NoScaleOffset]_EmissionMap("Emission Map", 2D) = "white" {} |
||||
|
|
||||
|
// Blending state |
||||
|
[HideInInspector] _Surface("__surface", Float) = 0.0 |
||||
|
[HideInInspector] _Blend("__blend", Float) = 0.0 |
||||
|
[HideInInspector] _AlphaClip("__clip", Float) = 0.0 |
||||
|
[HideInInspector] _SrcBlend("__src", Float) = 1.0 |
||||
|
[HideInInspector] _DstBlend("__dst", Float) = 0.0 |
||||
|
[HideInInspector] _ZWrite("__zw", Float) = 1.0 |
||||
|
[HideInInspector] _Cull("__cull", Float) = 2.0 |
||||
|
} |
||||
|
|
||||
|
SubShader |
||||
|
{ |
||||
|
Tags { "RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline" "UniversalMaterialType" = "SimpleLit" "IgnoreProjector" = "True" "ShaderModel"="4.5"} |
||||
|
LOD 300 |
||||
|
|
||||
|
Pass |
||||
|
{ |
||||
|
Name "ForwardLit" |
||||
|
Tags { "LightMode" = "UniversalForward" } |
||||
|
|
||||
|
// Use same blending / depth states as Standard shader |
||||
|
Blend[_SrcBlend][_DstBlend] |
||||
|
ZWrite[_ZWrite] |
||||
|
Cull[_Cull] |
||||
|
|
||||
|
HLSLPROGRAM |
||||
|
#pragma exclude_renderers gles gles3 glcore |
||||
|
#pragma target 4.5 |
||||
|
|
||||
|
// ------------------------------------- |
||||
|
// Material Keywords |
||||
|
#pragma multi_compile_local __ _ALPHATEST_ON |
||||
|
#pragma multi_compile_local __ _EMISSION |
||||
|
#pragma multi_compile_local __ _QLIGHTMAP_ON _AFFINE_ON // Lightmapping and affine texturing are mutually exclusive |
||||
|
|
||||
|
// ------------------------------------- |
||||
|
// Universal Pipeline keywords |
||||
|
#pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS |
||||
|
#pragma multi_compile _ _POINT_SAMPLING |
||||
|
|
||||
|
// ------------------------------------- |
||||
|
// Unity defined keywords |
||||
|
#pragma multi_compile_fog |
||||
|
|
||||
|
#pragma vertex LitPassVertexSimple |
||||
|
#pragma fragment LitPassFragmentSimple |
||||
|
#define BUMP_SCALE_NOT_SUPPORTED 1 |
||||
|
|
||||
|
#include "QuakeInput.hlsl" |
||||
|
#include "QuakeForwardPass.hlsl" |
||||
|
ENDHLSL |
||||
|
} |
||||
|
|
||||
|
Pass |
||||
|
{ |
||||
|
Name "DepthOnly" |
||||
|
Tags{"LightMode" = "DepthOnly"} |
||||
|
|
||||
|
ZWrite On |
||||
|
ColorMask 0 |
||||
|
Cull[_Cull] |
||||
|
|
||||
|
HLSLPROGRAM |
||||
|
#pragma exclude_renderers gles gles3 glcore |
||||
|
#pragma target 4.5 |
||||
|
|
||||
|
#pragma vertex DepthOnlyVertex |
||||
|
#pragma fragment DepthOnlyFragment |
||||
|
|
||||
|
// ------------------------------------- |
||||
|
// Material Keywords |
||||
|
#pragma multi_compile_local __ _ALPHATEST_ON |
||||
|
|
||||
|
#include "QuakeInput.hlsl" |
||||
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/DepthOnlyPass.hlsl" |
||||
|
ENDHLSL |
||||
|
} |
||||
|
|
||||
|
// This pass is used when drawing to a _CameraNormalsTexture texture |
||||
|
Pass |
||||
|
{ |
||||
|
Name "DepthNormals" |
||||
|
Tags{"LightMode" = "DepthNormals"} |
||||
|
|
||||
|
ZWrite On |
||||
|
Cull[_Cull] |
||||
|
|
||||
|
HLSLPROGRAM |
||||
|
#pragma exclude_renderers gles gles3 glcore |
||||
|
#pragma target 4.5 |
||||
|
|
||||
|
#pragma vertex DepthNormalsVertex |
||||
|
#pragma fragment DepthNormalsFragment |
||||
|
|
||||
|
// ------------------------------------- |
||||
|
// Material Keywords |
||||
|
#pragma multi_compile_local __ _ALPHATEST_ON |
||||
|
|
||||
|
#include "QuakeInput.hlsl" |
||||
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/DepthNormalsPass.hlsl" |
||||
|
ENDHLSL |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
Fallback "Hidden/Universal Render Pipeline/FallbackError" |
||||
|
//CustomEditor "UnityEditor.Rendering.Universal.ShaderGUI.SimpleLitShader" |
||||
|
} |
||||
@ -0,0 +1,10 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: eb7abeca30cd4fb4cb8be05eca69f850 |
||||
|
ShaderImporter: |
||||
|
externalObjects: {} |
||||
|
defaultTextures: [] |
||||
|
nonModifiableTextures: [] |
||||
|
preprocessorOverride: 0 |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
||||
@ -0,0 +1,157 @@ |
|||||
|
#ifndef UNIVERSAL_SIMPLE_LIT_PASS_INCLUDED |
||||
|
#define UNIVERSAL_SIMPLE_LIT_PASS_INCLUDED |
||||
|
|
||||
|
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl" |
||||
|
|
||||
|
struct Attributes |
||||
|
{ |
||||
|
float4 positionOS : POSITION; |
||||
|
float3 normalOS : NORMAL; |
||||
|
float4 tangentOS : TANGENT; |
||||
|
float2 texcoord : TEXCOORD0; |
||||
|
#ifdef _QLIGHTMAP_ON |
||||
|
float2 lightmapUV : TEXCOORD1; |
||||
|
#endif |
||||
|
UNITY_VERTEX_INPUT_INSTANCE_ID |
||||
|
}; |
||||
|
|
||||
|
struct Varyings |
||||
|
{ |
||||
|
#ifdef _AFFINE_ON |
||||
|
noperspective |
||||
|
#endif |
||||
|
float2 uv : TEXCOORD0; |
||||
|
|
||||
|
#ifdef _QLIGHTMAP_ON |
||||
|
float2 lightmapUV : TEXCOORD1; |
||||
|
#else |
||||
|
half3 vertexSH : TEXCOORD1; |
||||
|
#endif |
||||
|
|
||||
|
float3 posWS : TEXCOORD2; // xyz: posWS |
||||
|
|
||||
|
float3 normal : TEXCOORD3; |
||||
|
float3 viewDir : TEXCOORD4; |
||||
|
|
||||
|
half4 fogFactorAndVertexLight : TEXCOORD6; // x: fogFactor, yzw: vertex light |
||||
|
|
||||
|
float4 positionCS : SV_POSITION; |
||||
|
UNITY_VERTEX_INPUT_INSTANCE_ID |
||||
|
UNITY_VERTEX_OUTPUT_STEREO |
||||
|
}; |
||||
|
|
||||
|
void InitializeInputData(Varyings input, out InputData inputData) |
||||
|
{ |
||||
|
inputData.positionWS = input.posWS; |
||||
|
|
||||
|
half3 viewDirWS = input.viewDir; |
||||
|
inputData.normalWS = input.normal; |
||||
|
|
||||
|
inputData.normalWS = NormalizeNormalPerPixel(inputData.normalWS); |
||||
|
viewDirWS = SafeNormalize(viewDirWS); |
||||
|
|
||||
|
inputData.viewDirectionWS = viewDirWS; |
||||
|
|
||||
|
inputData.shadowCoord = float4(0, 0, 0, 0); |
||||
|
|
||||
|
inputData.fogCoord = input.fogFactorAndVertexLight.x; |
||||
|
inputData.vertexLighting = input.fogFactorAndVertexLight.yzw; |
||||
|
#ifdef _QLIGHTMAP_ON |
||||
|
inputData.bakedGI = 0.0; |
||||
|
#else |
||||
|
inputData.bakedGI = SampleSHPixel(input.vertexSH, inputData.normalWS); |
||||
|
#endif |
||||
|
inputData.normalizedScreenSpaceUV = GetNormalizedScreenSpaceUV(input.positionCS); |
||||
|
inputData.shadowMask = 0.0; |
||||
|
} |
||||
|
|
||||
|
/////////////////////////////////////////////////////////////////////////////// |
||||
|
// Vertex and Fragment functions // |
||||
|
/////////////////////////////////////////////////////////////////////////////// |
||||
|
|
||||
|
// Used in Standard (Simple Lighting) shader |
||||
|
Varyings LitPassVertexSimple(Attributes input) |
||||
|
{ |
||||
|
Varyings output = (Varyings)0; |
||||
|
|
||||
|
UNITY_SETUP_INSTANCE_ID(input); |
||||
|
UNITY_TRANSFER_INSTANCE_ID(input, output); |
||||
|
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); |
||||
|
|
||||
|
VertexPositionInputs vertexInput = GetVertexPositionInputs(input.positionOS.xyz); |
||||
|
VertexNormalInputs normalInput = GetVertexNormalInputs(input.normalOS, input.tangentOS); |
||||
|
half3 viewDirWS = GetWorldSpaceViewDir(vertexInput.positionWS); |
||||
|
half3 vertexLight = VertexLighting(vertexInput.positionWS, normalInput.normalWS); |
||||
|
half fogFactor = ComputeFogFactor(vertexInput.positionCS.z); |
||||
|
|
||||
|
output.uv = TRANSFORM_TEX(input.texcoord, _BaseMap); |
||||
|
output.posWS.xyz = vertexInput.positionWS; |
||||
|
output.positionCS = vertexInput.positionCS; |
||||
|
|
||||
|
output.normal = NormalizeNormalPerVertex(normalInput.normalWS); |
||||
|
output.viewDir = viewDirWS; |
||||
|
|
||||
|
#ifdef _QLIGHTMAP_ON |
||||
|
output.lightmapUV.xy = input.lightmapUV.xy; |
||||
|
#else |
||||
|
output.vertexSH.xyz = SampleSHVertex(output.normal.xyz); |
||||
|
#endif |
||||
|
|
||||
|
output.fogFactorAndVertexLight = half4(fogFactor, vertexLight); |
||||
|
|
||||
|
return output; |
||||
|
} |
||||
|
|
||||
|
// Used for StandardSimpleLighting shader |
||||
|
half4 LitPassFragmentSimple(Varyings input) : SV_Target |
||||
|
{ |
||||
|
UNITY_SETUP_INSTANCE_ID(input); |
||||
|
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); |
||||
|
|
||||
|
float2 uv = input.uv.xy; |
||||
|
half4 diffuseAlpha = SampleAlbedoAlpha(uv, |
||||
|
#if _POINT_SAMPLING |
||||
|
TEXTURE2D_ARGS(_BaseMap, point_repeat_sampler) |
||||
|
#else |
||||
|
TEXTURE2D_ARGS(_BaseMap, sampler_BaseMap) |
||||
|
#endif |
||||
|
); |
||||
|
|
||||
|
half3 diffuse = diffuseAlpha.rgb * _BaseColor.rgb; |
||||
|
|
||||
|
half alpha = diffuseAlpha.a * _BaseColor.a; |
||||
|
AlphaDiscard(alpha, _Cutoff); |
||||
|
|
||||
|
InputData inputData; |
||||
|
InitializeInputData(input, inputData); |
||||
|
|
||||
|
#ifdef _QLIGHTMAP_ON |
||||
|
half4 lightmapColor = SAMPLE_TEXTURE2D(_LightMap, sampler_LightMap, input.lightmapUV); |
||||
|
half3 finalColor = diffuse * lightmapColor.rgb * 2.0f; |
||||
|
#else |
||||
|
// Specular and smoothness are some bogus values just to make models not appear completely black on one side |
||||
|
half3 finalColor = UniversalFragmentBlinnPhong(inputData, diffuse, half4(0.2, 0.2, 0.2, 1), 0.5, 0.0, alpha).rgb; |
||||
|
// Light light = GetMainLight(); |
||||
|
// half3 diffuseColor = LightingLambert(light.color, light.direction, inputData.normalWS); |
||||
|
// half3 finalColor = diffuse * diffuseColor; |
||||
|
#endif |
||||
|
|
||||
|
#ifdef _EMISSION |
||||
|
finalColor += SampleEmission(uv, _EmissionColor.rgb, |
||||
|
#if _POINT_SAMPLING |
||||
|
TEXTURE2D_ARGS(_EmissionMap, point_repeat_sampler) |
||||
|
#else |
||||
|
TEXTURE2D_ARGS(_EmissionMap, sampler_EmissionMap) |
||||
|
#endif |
||||
|
); |
||||
|
#endif |
||||
|
|
||||
|
half4 color = half4(finalColor, alpha); |
||||
|
|
||||
|
color.rgb = MixFog(color.rgb, inputData.fogCoord); |
||||
|
color.a = OutputAlpha(color.a, _Surface); |
||||
|
|
||||
|
return color; |
||||
|
} |
||||
|
|
||||
|
#endif |
||||
@ -0,0 +1,10 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 6aa574d369884d24e8f28b300a86fcb3 |
||||
|
ShaderImporter: |
||||
|
externalObjects: {} |
||||
|
defaultTextures: [] |
||||
|
nonModifiableTextures: [] |
||||
|
preprocessorOverride: 0 |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
||||
@ -0,0 +1,51 @@ |
|||||
|
#ifndef UNIVERSAL_SIMPLE_LIT_INPUT_INCLUDED |
||||
|
#define UNIVERSAL_SIMPLE_LIT_INPUT_INCLUDED |
||||
|
|
||||
|
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" |
||||
|
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceInput.hlsl" |
||||
|
|
||||
|
CBUFFER_START(UnityPerMaterial) |
||||
|
float4 _BaseMap_ST; |
||||
|
float4 _LightMap_ST; |
||||
|
half4 _BaseColor; |
||||
|
half4 _EmissionColor; |
||||
|
half _Cutoff; |
||||
|
half _Surface; |
||||
|
CBUFFER_END |
||||
|
|
||||
|
#ifdef UNITY_DOTS_INSTANCING_ENABLED |
||||
|
UNITY_DOTS_INSTANCING_START(MaterialPropertyMetadata) |
||||
|
UNITY_DOTS_INSTANCED_PROP(float4, _BaseColor) |
||||
|
UNITY_DOTS_INSTANCED_PROP(float4, _EmissionColor) |
||||
|
UNITY_DOTS_INSTANCED_PROP(float , _Cutoff) |
||||
|
UNITY_DOTS_INSTANCED_PROP(float , _Surface) |
||||
|
UNITY_DOTS_INSTANCING_END(MaterialPropertyMetadata) |
||||
|
|
||||
|
#define _BaseColor UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata__BaseColor) |
||||
|
#define _EmissionColor UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata__EmissionColor) |
||||
|
#define _Cutoff UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata__Cutoff) |
||||
|
#define _Surface UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata__Surface) |
||||
|
#endif |
||||
|
|
||||
|
SAMPLER(point_repeat_sampler); |
||||
|
TEXTURE2D(_LightMap); SAMPLER(sampler_LightMap); |
||||
|
|
||||
|
inline void InitializeSimpleLitSurfaceData(float2 uv, out SurfaceData outSurfaceData) |
||||
|
{ |
||||
|
outSurfaceData = (SurfaceData)0; |
||||
|
|
||||
|
half4 albedoAlpha = SampleAlbedoAlpha(uv, TEXTURE2D_ARGS(_BaseMap, sampler_BaseMap)); |
||||
|
outSurfaceData.alpha = albedoAlpha.a * _BaseColor.a; |
||||
|
AlphaDiscard(outSurfaceData.alpha, _Cutoff); |
||||
|
|
||||
|
outSurfaceData.albedo = albedoAlpha.rgb * _BaseColor.rgb; |
||||
|
|
||||
|
outSurfaceData.metallic = 0.0; // unused |
||||
|
outSurfaceData.specular = 0.0; // unused |
||||
|
outSurfaceData.smoothness = 0.0; // unused |
||||
|
//outSurfaceData.normalTS = SampleNormal(uv, TEXTURE2D_ARGS(_BumpMap, sampler_BumpMap)); |
||||
|
outSurfaceData.occlusion = 1.0; // unused |
||||
|
outSurfaceData.emission = SampleEmission(uv, _EmissionColor.rgb, TEXTURE2D_ARGS(_EmissionMap, sampler_EmissionMap)); |
||||
|
} |
||||
|
|
||||
|
#endif |
||||
@ -0,0 +1,10 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 209b8f66e5d711946ba4c4ccb9e0a9b4 |
||||
|
ShaderImporter: |
||||
|
externalObjects: {} |
||||
|
defaultTextures: [] |
||||
|
nonModifiableTextures: [] |
||||
|
preprocessorOverride: 0 |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
||||
@ -0,0 +1,26 @@ |
|||||
|
%YAML 1.1 |
||||
|
%TAG !u! tag:unity3d.com,2011: |
||||
|
--- !u!114 &11400000 |
||||
|
MonoBehaviour: |
||||
|
m_ObjectHideFlags: 0 |
||||
|
m_CorrespondingSourceObject: {fileID: 0} |
||||
|
m_PrefabInstance: {fileID: 0} |
||||
|
m_PrefabAsset: {fileID: 0} |
||||
|
m_GameObject: {fileID: 0} |
||||
|
m_Enabled: 1 |
||||
|
m_EditorHideFlags: 0 |
||||
|
m_Script: {fileID: 11500000, guid: 2df0cbad06a6ed5489201e395f9c5bb3, type: 3} |
||||
|
m_Name: Software |
||||
|
m_EditorClassIdentifier: |
||||
|
entityMaterial: {fileID: 2100000, guid: 4d7703ac1adf3534f89b4041b779ff5e, type: 2} |
||||
|
worldMaterial: {fileID: 2100000, guid: fcbaf32c00bea2344bbb1419c61364b6, type: 2} |
||||
|
liquidMaterial: {fileID: 2100000, guid: cd59502a1689c0847a1963c60e347987, type: 2} |
||||
|
pointSampling: 1 |
||||
|
affineTexturing: 1 |
||||
|
liquidProperties: |
||||
|
waterAlpha: 1 |
||||
|
slimeAlpha: 1 |
||||
|
lavaAlpha: 1 |
||||
|
teleAlpha: 1 |
||||
|
particles: |
||||
|
explosion: {fileID: 0} |
||||
@ -0,0 +1,8 @@ |
|||||
|
fileFormatVersion: 2 |
||||
|
guid: 9f4246ec8cb97bd4d98b1f583ac1d2cd |
||||
|
NativeFormatImporter: |
||||
|
externalObjects: {} |
||||
|
mainObjectFileID: 11400000 |
||||
|
userData: |
||||
|
assetBundleName: |
||||
|
assetBundleVariant: |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue