Remove bakery
This commit is contained in:
parent
6521486237
commit
d52c87eeaa
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: ef503d75f14abe345b5bedf4d40fa2dd
|
|
||||||
folderAsset: yes
|
|
||||||
timeCreated: 1606240228
|
|
||||||
licenseType: Store
|
|
||||||
DefaultImporter:
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,6 +0,0 @@
|
|||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
public class BakeryAlwaysRender : MonoBehaviour {
|
|
||||||
}
|
|
@ -1,12 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: e2d6e02e134906942bad71c1434453fa
|
|
||||||
timeCreated: 1561146394
|
|
||||||
licenseType: Store
|
|
||||||
MonoImporter:
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,107 +0,0 @@
|
|||||||
using UnityEngine;
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
using UnityEditor;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
[ExecuteInEditMode]
|
|
||||||
[DisallowMultipleComponent]
|
|
||||||
public class BakeryDirectLight : MonoBehaviour
|
|
||||||
{
|
|
||||||
public Color color = Color.white;
|
|
||||||
public float intensity = 1.0f;
|
|
||||||
public float shadowSpread = 0.01f;//0.05f;
|
|
||||||
public int samples = 16;
|
|
||||||
//public uint bitmask = 1;
|
|
||||||
public int bitmask = 1;
|
|
||||||
public bool bakeToIndirect = false;
|
|
||||||
public bool shadowmask = false;
|
|
||||||
public bool shadowmaskDenoise = false;
|
|
||||||
public float indirectIntensity = 1.0f;
|
|
||||||
public Texture2D cloudShadow;
|
|
||||||
public float cloudShadowTilingX = 0.01f;
|
|
||||||
public float cloudShadowTilingY = 0.01f;
|
|
||||||
public float cloudShadowOffsetX, cloudShadowOffsetY;
|
|
||||||
|
|
||||||
public int UID;
|
|
||||||
|
|
||||||
public static int lightsChanged = 0; // 1 = const, 2 = full
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
void OnValidate()
|
|
||||||
{
|
|
||||||
if (lightsChanged == 0) lightsChanged = 1;
|
|
||||||
}
|
|
||||||
void OnEnable()
|
|
||||||
{
|
|
||||||
lightsChanged = 2;
|
|
||||||
}
|
|
||||||
void OnDisable()
|
|
||||||
{
|
|
||||||
lightsChanged = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Start()
|
|
||||||
{
|
|
||||||
if (gameObject.GetComponent<BakerySkyLight>() != null ||
|
|
||||||
gameObject.GetComponent<BakeryPointLight>() != null ||
|
|
||||||
gameObject.GetComponent<BakeryLightMesh>() != null)
|
|
||||||
{
|
|
||||||
EditorUtility.DisplayDialog("Bakery", "Can't have more than one Bakery light on one object", "OK");
|
|
||||||
DestroyImmediate(this);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (EditorApplication.isPlayingOrWillChangePlaymode) return;
|
|
||||||
if (UID == 0) UID = Guid.NewGuid().GetHashCode();
|
|
||||||
ftUniqueIDRegistry.Register(UID, gameObject.GetInstanceID());
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnDestroy()
|
|
||||||
{
|
|
||||||
if (UID == 0) return;
|
|
||||||
if (EditorApplication.isPlayingOrWillChangePlaymode) return;
|
|
||||||
ftUniqueIDRegistry.Deregister(UID);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Update()
|
|
||||||
{
|
|
||||||
if (EditorApplication.isPlayingOrWillChangePlaymode) return;
|
|
||||||
if (!ftUniqueIDRegistry.Mapping.ContainsKey(UID)) ftUniqueIDRegistry.Register(UID, gameObject.GetInstanceID());
|
|
||||||
if (gameObject.GetInstanceID() != ftUniqueIDRegistry.GetInstanceId(UID))
|
|
||||||
{
|
|
||||||
UID = Guid.NewGuid().GetHashCode();
|
|
||||||
ftUniqueIDRegistry.Register(UID, gameObject.GetInstanceID());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnDrawGizmos()
|
|
||||||
{
|
|
||||||
Gizmos.color = Color.yellow;
|
|
||||||
Gizmos.DrawSphere(transform.position, 0.1f);
|
|
||||||
|
|
||||||
//Gizmos.DrawWireSphere(transform.position, 0.5f);
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnDrawGizmosSelected()
|
|
||||||
{
|
|
||||||
Gizmos.color = Color.yellow;
|
|
||||||
var endPoint = transform.position + transform.forward * 2;
|
|
||||||
Gizmos.DrawLine(transform.position, endPoint);
|
|
||||||
|
|
||||||
//Gizmos.color = Color.blue;
|
|
||||||
Gizmos.DrawWireSphere(transform.position, 0.2f);
|
|
||||||
|
|
||||||
Gizmos.DrawLine(endPoint, endPoint + (transform.position + transform.right - endPoint).normalized * 0.5f);
|
|
||||||
Gizmos.DrawLine(endPoint, endPoint + (transform.position - transform.right - endPoint).normalized * 0.5f);
|
|
||||||
Gizmos.DrawLine(endPoint, endPoint + (transform.position + transform.up - endPoint).normalized * 0.5f);
|
|
||||||
Gizmos.DrawLine(endPoint, endPoint + (transform.position - transform.up - endPoint).normalized * 0.5f);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: c74ce2158ae608549902afb4112fd042
|
|
||||||
timeCreated: 1526382158
|
|
||||||
licenseType: Store
|
|
||||||
MonoImporter:
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,83 +0,0 @@
|
|||||||
using UnityEngine;
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
using UnityEditor;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
[ExecuteInEditMode]
|
|
||||||
[DisallowMultipleComponent]
|
|
||||||
public class BakeryLightMesh : MonoBehaviour
|
|
||||||
{
|
|
||||||
public int UID;
|
|
||||||
|
|
||||||
public Color color = Color.white;
|
|
||||||
public float intensity = 1.0f;
|
|
||||||
public Texture2D texture = null;
|
|
||||||
public float cutoff = 100;
|
|
||||||
public int samples = 256;
|
|
||||||
public int samples2 = 16;
|
|
||||||
public int bitmask = 1;
|
|
||||||
public bool selfShadow = true;
|
|
||||||
public bool bakeToIndirect = true;
|
|
||||||
public float indirectIntensity = 1.0f;
|
|
||||||
|
|
||||||
public int lmid = -2;
|
|
||||||
|
|
||||||
public static int lightsChanged = 0;
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
void OnValidate()
|
|
||||||
{
|
|
||||||
if (lightsChanged == 0) lightsChanged = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Start()
|
|
||||||
{
|
|
||||||
if (gameObject.GetComponent<BakeryDirectLight>() != null ||
|
|
||||||
gameObject.GetComponent<BakeryPointLight>() != null ||
|
|
||||||
gameObject.GetComponent<BakerySkyLight>() != null)
|
|
||||||
{
|
|
||||||
EditorUtility.DisplayDialog("Bakery", "Can't have more than one Bakery light on one object", "OK");
|
|
||||||
DestroyImmediate(this);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (EditorApplication.isPlayingOrWillChangePlaymode) return;
|
|
||||||
|
|
||||||
if (UID == 0) UID = Guid.NewGuid().GetHashCode();
|
|
||||||
ftUniqueIDRegistry.Register(UID, gameObject.GetInstanceID());
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnDestroy()
|
|
||||||
{
|
|
||||||
if (UID == 0) return;
|
|
||||||
if (EditorApplication.isPlayingOrWillChangePlaymode) return;
|
|
||||||
ftUniqueIDRegistry.Deregister(UID);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Update()
|
|
||||||
{
|
|
||||||
if (EditorApplication.isPlayingOrWillChangePlaymode) return;
|
|
||||||
if (!ftUniqueIDRegistry.Mapping.ContainsKey(UID)) ftUniqueIDRegistry.Register(UID, gameObject.GetInstanceID());
|
|
||||||
if (gameObject.GetInstanceID() != ftUniqueIDRegistry.GetInstanceId(UID))
|
|
||||||
{
|
|
||||||
UID = Guid.NewGuid().GetHashCode();
|
|
||||||
ftUniqueIDRegistry.Register(UID, gameObject.GetInstanceID());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void OnDrawGizmosSelected()
|
|
||||||
{
|
|
||||||
Gizmos.color = Color.yellow;
|
|
||||||
var mr = gameObject.GetComponent<MeshRenderer>();
|
|
||||||
if (mr!=null) Gizmos.DrawWireSphere(mr.bounds.center, cutoff);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: a28e27cacfc7e70479097f0a63c37217
|
|
||||||
timeCreated: 1526382158
|
|
||||||
licenseType: Store
|
|
||||||
MonoImporter:
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,174 +0,0 @@
|
|||||||
using UnityEngine;
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
using UnityEditor;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
public struct BakeryLightmapGroupPlain
|
|
||||||
{
|
|
||||||
public string name;
|
|
||||||
public int resolution, id, renderMode, renderDirMode, atlasPacker;
|
|
||||||
public bool vertexBake;
|
|
||||||
public bool containsTerrains;
|
|
||||||
public bool probes;
|
|
||||||
public bool isImplicit;
|
|
||||||
public bool computeSSS;
|
|
||||||
public int sssSamples;
|
|
||||||
public float sssDensity;
|
|
||||||
public float sssR, sssG, sssB;
|
|
||||||
public float fakeShadowBias;
|
|
||||||
public bool transparentSelfShadow;
|
|
||||||
public bool flipNormal;
|
|
||||||
public string parentName;
|
|
||||||
public int sceneLodLevel;
|
|
||||||
};
|
|
||||||
|
|
||||||
[CreateAssetMenu(menuName = "Bakery lightmap group")]
|
|
||||||
public class BakeryLightmapGroup : ScriptableObject
|
|
||||||
{
|
|
||||||
public enum ftLMGroupMode
|
|
||||||
{
|
|
||||||
OriginalUV = 0,
|
|
||||||
PackAtlas = 1,
|
|
||||||
Vertex = 2
|
|
||||||
};
|
|
||||||
|
|
||||||
public enum RenderMode
|
|
||||||
{
|
|
||||||
FullLighting = 0,
|
|
||||||
Indirect = 1,
|
|
||||||
Shadowmask = 2,
|
|
||||||
Subtractive = 3,
|
|
||||||
AmbientOcclusionOnly = 4,
|
|
||||||
Auto = 1000
|
|
||||||
};
|
|
||||||
|
|
||||||
public enum RenderDirMode
|
|
||||||
{
|
|
||||||
None = 0,
|
|
||||||
BakedNormalMaps = 1,
|
|
||||||
DominantDirection = 2,
|
|
||||||
RNM = 3,
|
|
||||||
SH = 4,
|
|
||||||
ProbeSH = 5,
|
|
||||||
Auto = 1000
|
|
||||||
};
|
|
||||||
|
|
||||||
public enum AtlasPacker
|
|
||||||
{
|
|
||||||
Default = 0,
|
|
||||||
xatlas = 1,
|
|
||||||
Auto = 1000
|
|
||||||
};
|
|
||||||
|
|
||||||
[SerializeField, Range(1, 8192)]
|
|
||||||
public int resolution = 512;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public int bitmask = 1;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public int id = -1;
|
|
||||||
|
|
||||||
public int sortingID = -1;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public bool isImplicit = false;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public float area = 0.0f;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public int totalVertexCount = 0;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public int vertexCounter = 0;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public int sceneLodLevel = -1;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public string sceneName;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public bool containsTerrains;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public bool probes;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public ftLMGroupMode mode = ftLMGroupMode.PackAtlas;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public RenderMode renderMode = RenderMode.Auto;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public RenderDirMode renderDirMode = RenderDirMode.Auto;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public AtlasPacker atlasPacker = AtlasPacker.Auto;
|
|
||||||
|
|
||||||
//[SerializeField]
|
|
||||||
//public bool aoIsThickness = false;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public bool computeSSS = false;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public int sssSamples = 16;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public float sssDensity = 10;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public Color sssColor = Color.white;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public float fakeShadowBias = 0.0f;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public bool transparentSelfShadow = false;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public bool flipNormal = false;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public string parentName;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public string overridePath = "";
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public bool fixPos3D = false;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public Vector3 voxelSize = Vector3.one;
|
|
||||||
|
|
||||||
public BakeryLightmapGroupPlain GetPlainStruct()
|
|
||||||
{
|
|
||||||
BakeryLightmapGroupPlain str;
|
|
||||||
str.name = name;
|
|
||||||
str.id = id;
|
|
||||||
str.resolution = resolution;
|
|
||||||
str.vertexBake = mode == ftLMGroupMode.Vertex;
|
|
||||||
str.isImplicit = isImplicit;
|
|
||||||
str.renderMode = (int)renderMode;
|
|
||||||
str.renderDirMode = (int)renderDirMode;
|
|
||||||
str.atlasPacker = (int)atlasPacker;
|
|
||||||
str.computeSSS = computeSSS;
|
|
||||||
str.sssSamples = sssSamples;
|
|
||||||
str.sssDensity = sssDensity;
|
|
||||||
str.sssR = sssColor.r;
|
|
||||||
str.sssG = sssColor.g;
|
|
||||||
str.sssB = sssColor.b;
|
|
||||||
str.containsTerrains = containsTerrains;
|
|
||||||
str.probes = probes;
|
|
||||||
str.fakeShadowBias = fakeShadowBias;
|
|
||||||
str.transparentSelfShadow = transparentSelfShadow;
|
|
||||||
str.flipNormal = flipNormal;
|
|
||||||
str.parentName = parentName;
|
|
||||||
str.sceneLodLevel = sceneLodLevel;
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: ec0b4dd729a12d046982652f834580a2
|
|
||||||
timeCreated: 1526381368
|
|
||||||
licenseType: Store
|
|
||||||
MonoImporter:
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,9 +0,0 @@
|
|||||||
using UnityEngine;
|
|
||||||
|
|
||||||
public class BakeryLightmapGroupSelector : MonoBehaviour
|
|
||||||
{
|
|
||||||
public Object lmgroupAsset;
|
|
||||||
public bool instanceResolutionOverride = false;
|
|
||||||
public int instanceResolution = 256;
|
|
||||||
}
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 0a747f33c53bd3042af4ac90fc2a1fd3
|
|
||||||
timeCreated: 1526383988
|
|
||||||
licenseType: Store
|
|
||||||
MonoImporter:
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,130 +0,0 @@
|
|||||||
#if UNITY_EDITOR
|
|
||||||
using UnityEditor;
|
|
||||||
#endif
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
// Disable 'obsolete' warnings
|
|
||||||
#pragma warning disable 0618
|
|
||||||
|
|
||||||
[DisallowMultipleComponent]
|
|
||||||
public class BakeryLightmappedPrefab : MonoBehaviour
|
|
||||||
{
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
public bool enableBaking = true;
|
|
||||||
public string errorMessage;
|
|
||||||
|
|
||||||
public bool IsValid()
|
|
||||||
{
|
|
||||||
errorMessage = "";
|
|
||||||
|
|
||||||
if (!enableBaking)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool isPartOfPrefab = PrefabUtility.GetPrefabType(gameObject) == PrefabType.PrefabInstance;
|
|
||||||
if (!isPartOfPrefab)
|
|
||||||
{
|
|
||||||
errorMessage = "this GameObject is not a prefab";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool prefabIsRoot = PrefabUtility.FindPrefabRoot(gameObject) == gameObject;
|
|
||||||
if (!prefabIsRoot)
|
|
||||||
{
|
|
||||||
errorMessage = "this GameObject is not a root prefab object";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
var transforms = GetComponentsInChildren<Transform>();
|
|
||||||
for(int i=0; i<transforms.Length; i++)
|
|
||||||
{
|
|
||||||
if (PrefabUtility.FindPrefabRoot(transforms[i].gameObject) != gameObject)
|
|
||||||
{
|
|
||||||
errorMessage = "prefab contains unapplied object (" + transforms[i].name + ")";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var prefabRootObj = PrefabUtility.GetPrefabObject(gameObject);
|
|
||||||
//var prefabRootObj2 = PrefabUtility.FindPrefabRoot(gameObject);
|
|
||||||
|
|
||||||
var mods = PrefabUtility.GetPropertyModifications(gameObject);
|
|
||||||
if (mods != null)
|
|
||||||
{
|
|
||||||
for(int i=0; i<mods.Length; i++)
|
|
||||||
{
|
|
||||||
if (mods[i] == null) continue;
|
|
||||||
#if UNITY_2018_3_OR_NEWER
|
|
||||||
if (PrefabUtility.IsDefaultOverride(mods[i])) continue;
|
|
||||||
#endif
|
|
||||||
if (mods[i].propertyPath == "m_RootOrder") continue;
|
|
||||||
if (mods[i].propertyPath == "errorMessage") continue;
|
|
||||||
if (mods[i].propertyPath == "enableBaking") continue;
|
|
||||||
if (mods[i].propertyPath.IndexOf("idremap") >= 0) continue;
|
|
||||||
if (mods[i].target != null && mods[i].target.name == gameObject.name)
|
|
||||||
{
|
|
||||||
if (mods[i].propertyPath.Contains("m_LocalPosition")) continue;
|
|
||||||
if (mods[i].propertyPath.Contains("m_LocalRotation")) continue;
|
|
||||||
if (mods[i].propertyPath.Contains("m_LocalScale")) continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
errorMessage = "prefab contains unapplied data (" + mods[i].target+"."+mods[i].propertyPath + ")";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var comps = gameObject.GetComponents<Component>();
|
|
||||||
var comps2 = gameObject.GetComponentsInChildren<Component>();
|
|
||||||
|
|
||||||
for(int t=0; t<2; t++)
|
|
||||||
{
|
|
||||||
var comps3 = t == 0 ? comps : comps2;
|
|
||||||
for(int c=0; c<comps3.Length; c++)
|
|
||||||
{
|
|
||||||
var prefabObj = PrefabUtility.GetPrefabObject(comps3[c]);
|
|
||||||
if (prefabObj != prefabRootObj)
|
|
||||||
{
|
|
||||||
errorMessage = "prefab contains unapplied component (" + comps3[c] + ")";
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*bool isRoot = comps3[c].gameObject == gameObject;
|
|
||||||
|
|
||||||
var mods = PrefabUtility.GetPropertyModifications(comps3[c]);
|
|
||||||
if (mods == null) continue;
|
|
||||||
for(int i=0; i<mods.Length; i++)
|
|
||||||
{
|
|
||||||
if (mods[i].propertyPath == "m_RootOrder") continue;
|
|
||||||
if (isRoot)
|
|
||||||
{
|
|
||||||
if (mods[i].propertyPath == "errorMessage") continue;
|
|
||||||
if (mods[i].propertyPath == "enableBaking") continue;
|
|
||||||
if (mods[i].propertyPath.Contains("m_LocalPosition")) continue;
|
|
||||||
if (mods[i].propertyPath.Contains("m_LocalRotation")) continue;
|
|
||||||
if (mods[i].propertyPath.Contains("m_LocalScale")) continue;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (mods[i].propertyPath.Contains("m_LocalPosition"))
|
|
||||||
{
|
|
||||||
var dist = (comps3[c].transform.position - (PrefabUtility.GetPrefabParent(comps3[c].gameObject) as GameObject).transform.position).sqrMagnitude;
|
|
||||||
Debug.LogError(dist);
|
|
||||||
if (dist < 0.001f) continue;
|
|
||||||
}
|
|
||||||
else if (mods[i].propertyPath.Contains("m_LocalRotation"))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
errorMessage = "Error: prefab contains unapplied data (" + mods[i].target+"."+mods[i].propertyPath + ")";
|
|
||||||
return false;
|
|
||||||
}*/
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 6090ef81e51c0ad4da5a1a37e6cf65cf
|
|
||||||
timeCreated: 1541703042
|
|
||||||
licenseType: Store
|
|
||||||
MonoImporter:
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,68 +0,0 @@
|
|||||||
#ifndef BAKERY_META
|
|
||||||
#define BAKERY_META
|
|
||||||
|
|
||||||
Texture2D bestFitNormalMap;
|
|
||||||
|
|
||||||
struct BakeryMetaInput
|
|
||||||
{
|
|
||||||
float2 uv0 : TEXCOORD0;
|
|
||||||
float2 uv1 : TEXCOORD1;
|
|
||||||
float3 normal : NORMAL;
|
|
||||||
#ifndef _TERRAIN_NORMAL_MAP
|
|
||||||
float4 tangent : TANGENT;
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f_bakeryMeta
|
|
||||||
{
|
|
||||||
float4 pos : SV_POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float3 normal : TEXCOORD1;
|
|
||||||
float3 tangent : TEXCOORD2;
|
|
||||||
float3 binormal : TEXCOORD3;
|
|
||||||
};
|
|
||||||
|
|
||||||
v2f_bakeryMeta vert_bakerymt (BakeryMetaInput v)
|
|
||||||
{
|
|
||||||
v2f_bakeryMeta o;
|
|
||||||
o.pos = float4(((v.uv1.xy * unity_LightmapST.xy + unity_LightmapST.zw)*2-1) * float2(1,-1), 0.5, 1);
|
|
||||||
o.uv = v.uv0;
|
|
||||||
o.normal = normalize(mul((float3x3)unity_ObjectToWorld, v.normal).xyz);
|
|
||||||
|
|
||||||
#ifdef _TERRAIN_NORMAL_MAP
|
|
||||||
o.tangent = cross(o.normal, float3(0,0,1));
|
|
||||||
o.binormal = cross(o.normal, o.tangent) * -1;
|
|
||||||
#else
|
|
||||||
o.tangent = normalize(mul((float3x3)unity_ObjectToWorld, v.tangent.xyz).xyz);
|
|
||||||
o.binormal = cross(o.normal, o.tangent) * v.tangent.w;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
float3 EncodeNormalBestFit(float3 n)
|
|
||||||
{
|
|
||||||
float3 nU = abs(n);
|
|
||||||
float maxNAbs = max(nU.z, max(nU.x, nU.y));
|
|
||||||
float2 TC = nU.z<maxNAbs? (nU.y<maxNAbs? nU.yz : nU.xz) : nU.xy;
|
|
||||||
//if (TC.x != TC.y)
|
|
||||||
//{
|
|
||||||
TC = TC.x<TC.y? TC.yx : TC.xy;
|
|
||||||
TC.y /= TC.x;
|
|
||||||
|
|
||||||
n /= maxNAbs;
|
|
||||||
float fittingScale = bestFitNormalMap.Load(int3(TC.x*1023, TC.y*1023, 0)).a;
|
|
||||||
n *= fittingScale;
|
|
||||||
//}
|
|
||||||
return n*0.5+0.5;
|
|
||||||
}
|
|
||||||
|
|
||||||
float3 TransformNormalMapToWorld(v2f_bakeryMeta i, float3 tangentNormalMap)
|
|
||||||
{
|
|
||||||
float3x3 TBN = float3x3(normalize(i.tangent), normalize(i.binormal), normalize(i.normal));
|
|
||||||
return mul(tangentNormalMap, TBN);
|
|
||||||
}
|
|
||||||
|
|
||||||
#define BakeryEncodeNormal EncodeNormalBestFit
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 1d6fa63b3a54ade469dc0fa038f0c81b
|
|
||||||
timeCreated: 1538849880
|
|
||||||
licenseType: Store
|
|
||||||
ShaderImporter:
|
|
||||||
defaultTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,6 +0,0 @@
|
|||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
public class BakeryPackAsSingleSquare : MonoBehaviour {
|
|
||||||
}
|
|
@ -1,12 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: cf72c611dfa77174e811af15d6ba69da
|
|
||||||
timeCreated: 1580818526
|
|
||||||
licenseType: Store
|
|
||||||
MonoImporter:
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,177 +0,0 @@
|
|||||||
using UnityEngine;
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
using UnityEditor;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
[ExecuteInEditMode]
|
|
||||||
[DisallowMultipleComponent]
|
|
||||||
public class BakeryPointLight : MonoBehaviour
|
|
||||||
{
|
|
||||||
public enum ftLightProjectionMode
|
|
||||||
{
|
|
||||||
Omni = 0,
|
|
||||||
Cookie = 1,
|
|
||||||
Cubemap = 2,
|
|
||||||
IES = 3,
|
|
||||||
Cone = 4
|
|
||||||
};
|
|
||||||
|
|
||||||
public int UID;
|
|
||||||
public Color color = Color.white;
|
|
||||||
public float intensity = 1.0f;
|
|
||||||
public float shadowSpread = 0.05f;
|
|
||||||
public float cutoff = 10.0f;
|
|
||||||
public bool realisticFalloff = false;
|
|
||||||
public int samples = 8;
|
|
||||||
public ftLightProjectionMode projMode;
|
|
||||||
public Texture2D cookie;
|
|
||||||
public float angle = 30.0f;
|
|
||||||
public float innerAngle = 0;
|
|
||||||
public Cubemap cubemap;
|
|
||||||
public UnityEngine.Object iesFile;
|
|
||||||
public int bitmask = 1;
|
|
||||||
public bool bakeToIndirect = false;
|
|
||||||
public bool shadowmask = false;
|
|
||||||
public float indirectIntensity = 1.0f;
|
|
||||||
public float falloffMinRadius = 1.0f;
|
|
||||||
public int shadowmaskGroupID = 0;
|
|
||||||
|
|
||||||
const float GIZMO_MAXSIZE = 0.1f;
|
|
||||||
const float GIZMO_SCALE = 0.01f;
|
|
||||||
float screenRadius = GIZMO_MAXSIZE;
|
|
||||||
|
|
||||||
public static int lightsChanged = 0; // 1 = const, 2 = full
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
void OnValidate()
|
|
||||||
{
|
|
||||||
if (lightsChanged == 0) lightsChanged = 1;
|
|
||||||
}
|
|
||||||
void OnEnable()
|
|
||||||
{
|
|
||||||
lightsChanged = 2;
|
|
||||||
}
|
|
||||||
void OnDisable()
|
|
||||||
{
|
|
||||||
lightsChanged = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Start()
|
|
||||||
{
|
|
||||||
if (gameObject.GetComponent<BakeryDirectLight>() != null ||
|
|
||||||
gameObject.GetComponent<BakerySkyLight>() != null ||
|
|
||||||
gameObject.GetComponent<BakeryLightMesh>() != null)
|
|
||||||
{
|
|
||||||
EditorUtility.DisplayDialog("Bakery", "Can't have more than one Bakery light on one object", "OK");
|
|
||||||
DestroyImmediate(this);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (EditorApplication.isPlayingOrWillChangePlaymode) return;
|
|
||||||
if (UID == 0) UID = Guid.NewGuid().GetHashCode();
|
|
||||||
ftUniqueIDRegistry.Register(UID, gameObject.GetInstanceID());
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnDestroy()
|
|
||||||
{
|
|
||||||
if (UID == 0) return;
|
|
||||||
if (EditorApplication.isPlayingOrWillChangePlaymode) return;
|
|
||||||
ftUniqueIDRegistry.Deregister(UID);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Update()
|
|
||||||
{
|
|
||||||
if (EditorApplication.isPlayingOrWillChangePlaymode) return;
|
|
||||||
if (!ftUniqueIDRegistry.Mapping.ContainsKey(UID)) ftUniqueIDRegistry.Register(UID, gameObject.GetInstanceID());
|
|
||||||
if (gameObject.GetInstanceID() != ftUniqueIDRegistry.GetInstanceId(UID))
|
|
||||||
{
|
|
||||||
UID = Guid.NewGuid().GetHashCode();
|
|
||||||
ftUniqueIDRegistry.Register(UID, gameObject.GetInstanceID());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnDrawGizmos()
|
|
||||||
{
|
|
||||||
Gizmos.color = color;
|
|
||||||
var curCam = Camera.current;
|
|
||||||
if (curCam != null)
|
|
||||||
{
|
|
||||||
screenRadius = Mathf.Min((transform.position - curCam.transform.position).magnitude * GIZMO_SCALE, GIZMO_MAXSIZE);
|
|
||||||
}
|
|
||||||
Gizmos.DrawSphere(transform.position, screenRadius);
|
|
||||||
}
|
|
||||||
|
|
||||||
void DrawArrow(Vector3 a, Vector3 b)
|
|
||||||
{
|
|
||||||
//const float len = 0.125f;
|
|
||||||
|
|
||||||
b = a + b * (shadowSpread + 0.05f);
|
|
||||||
Gizmos.DrawLine(a, b);
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnDrawGizmosSelected()
|
|
||||||
{
|
|
||||||
Gizmos.color = color;//Color.yellow;
|
|
||||||
Gizmos.DrawWireSphere(transform.position, shadowSpread);
|
|
||||||
|
|
||||||
Gizmos.color = new Color(color.r, color.g, color.b, 0.25f);//Color.gray;
|
|
||||||
if (projMode != ftLightProjectionMode.Cookie && projMode != ftLightProjectionMode.Cone) Gizmos.DrawWireSphere(transform.position, cutoff);
|
|
||||||
|
|
||||||
if (projMode != 0)
|
|
||||||
{
|
|
||||||
Gizmos.color = color;//Color.yellow;
|
|
||||||
Vector3 endPoint;
|
|
||||||
if (projMode == ftLightProjectionMode.Cookie || projMode == ftLightProjectionMode.Cone)
|
|
||||||
{
|
|
||||||
endPoint = transform.forward * 2;
|
|
||||||
Gizmos.DrawRay(transform.position, endPoint);
|
|
||||||
|
|
||||||
float angle2 = (180 - angle) * Mathf.Deg2Rad * 0.5f;
|
|
||||||
//float x = Mathf.Cos(angle2);
|
|
||||||
//float radius = x * cutoff;
|
|
||||||
|
|
||||||
float x = 1 / Mathf.Sin(angle2);
|
|
||||||
x = Mathf.Sqrt(x * x - 1);
|
|
||||||
float radius = x * cutoff;
|
|
||||||
|
|
||||||
const int segments = 16;
|
|
||||||
for(int i=0; i<segments; i++)
|
|
||||||
{
|
|
||||||
float p1 = i / (float)segments;
|
|
||||||
float p2 = (i+1) / (float)segments;
|
|
||||||
|
|
||||||
float x1 = Mathf.Cos(p1 * Mathf.PI*2);
|
|
||||||
float y1 = Mathf.Sin(p1 * Mathf.PI*2);
|
|
||||||
|
|
||||||
float x2 = Mathf.Cos(p2 * Mathf.PI*2);
|
|
||||||
float y2 = Mathf.Sin(p2 * Mathf.PI*2);
|
|
||||||
|
|
||||||
Vector3 A = transform.position + transform.forward * cutoff + transform.right * x1 * radius + transform.up * y1 * radius;
|
|
||||||
Vector3 B = transform.position + transform.forward * cutoff + transform.right * x2 * radius + transform.up * y2 * radius;
|
|
||||||
Gizmos.DrawLine(A, B);
|
|
||||||
|
|
||||||
if (i % 4 == 0) Gizmos.DrawLine(transform.position, A);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
endPoint = -transform.up * 2;
|
|
||||||
Gizmos.DrawRay(transform.position, endPoint);
|
|
||||||
}
|
|
||||||
endPoint += transform.position;
|
|
||||||
Gizmos.DrawLine(endPoint, endPoint + (transform.position + transform.right - endPoint).normalized * 0.5f);
|
|
||||||
Gizmos.DrawLine(endPoint, endPoint + (transform.position - transform.right - endPoint).normalized * 0.5f);
|
|
||||||
Gizmos.DrawLine(endPoint, endPoint + (transform.position + transform.up - endPoint).normalized * 0.5f);
|
|
||||||
Gizmos.DrawLine(endPoint, endPoint + (transform.position - transform.up - endPoint).normalized * 0.5f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 57f24a4aaa0761b45ba25e7e5108e2c7
|
|
||||||
timeCreated: 1526382158
|
|
||||||
licenseType: Store
|
|
||||||
MonoImporter:
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "BakeryRuntimeAssembly"
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: a1653399f63795746b1857281d1e400d
|
|
||||||
timeCreated: 1551814785
|
|
||||||
licenseType: Store
|
|
||||||
DefaultImporter:
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,120 +0,0 @@
|
|||||||
using UnityEngine;
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
using UnityEditor;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
[ExecuteInEditMode]
|
|
||||||
[DisallowMultipleComponent]
|
|
||||||
public class BakerySkyLight : MonoBehaviour
|
|
||||||
{
|
|
||||||
public string texName = "sky.dds";
|
|
||||||
public Color color = Color.white;
|
|
||||||
public float intensity = 1.0f;
|
|
||||||
public int samples = 32;
|
|
||||||
public bool hemispherical = false;
|
|
||||||
public int bitmask = 1;
|
|
||||||
public bool bakeToIndirect = true;
|
|
||||||
public float indirectIntensity = 1.0f;
|
|
||||||
public bool tangentSH = false;
|
|
||||||
public bool correctRotation = false;
|
|
||||||
|
|
||||||
public Cubemap cubemap;
|
|
||||||
|
|
||||||
public int UID;
|
|
||||||
|
|
||||||
public static int lightsChanged = 0; // 1 = const, 2 = full
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
void OnValidate()
|
|
||||||
{
|
|
||||||
if (lightsChanged == 0) lightsChanged = 1;
|
|
||||||
}
|
|
||||||
void OnEnable()
|
|
||||||
{
|
|
||||||
lightsChanged = 2;
|
|
||||||
}
|
|
||||||
void OnDisable()
|
|
||||||
{
|
|
||||||
lightsChanged = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Start()
|
|
||||||
{
|
|
||||||
if (gameObject.GetComponent<BakeryDirectLight>() != null ||
|
|
||||||
gameObject.GetComponent<BakeryPointLight>() != null ||
|
|
||||||
gameObject.GetComponent<BakeryLightMesh>() != null)
|
|
||||||
{
|
|
||||||
EditorUtility.DisplayDialog("Bakery", "Can't have more than one Bakery light on one object", "OK");
|
|
||||||
DestroyImmediate(this);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (EditorApplication.isPlayingOrWillChangePlaymode) return;
|
|
||||||
if (UID == 0) UID = Guid.NewGuid().GetHashCode();
|
|
||||||
ftUniqueIDRegistry.Register(UID, gameObject.GetInstanceID());
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnDestroy()
|
|
||||||
{
|
|
||||||
if (UID == 0) return;
|
|
||||||
if (EditorApplication.isPlayingOrWillChangePlaymode) return;
|
|
||||||
ftUniqueIDRegistry.Deregister(UID);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Update()
|
|
||||||
{
|
|
||||||
if (EditorApplication.isPlayingOrWillChangePlaymode) return;
|
|
||||||
if (!ftUniqueIDRegistry.Mapping.ContainsKey(UID)) ftUniqueIDRegistry.Register(UID, gameObject.GetInstanceID());
|
|
||||||
if (gameObject.GetInstanceID() != ftUniqueIDRegistry.GetInstanceId(UID))
|
|
||||||
{
|
|
||||||
UID = Guid.NewGuid().GetHashCode();
|
|
||||||
ftUniqueIDRegistry.Register(UID, gameObject.GetInstanceID());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnDrawGizmos()
|
|
||||||
{
|
|
||||||
Gizmos.color = new Color(49/255.0f, 91/255.0f, 191/255.0f);
|
|
||||||
Gizmos.DrawSphere(transform.position, 0.1f);
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnDrawGizmosSelected()
|
|
||||||
{
|
|
||||||
Gizmos.color = new Color(49/255.0f, 91/255.0f, 191/255.0f);
|
|
||||||
Vector3 origin = transform.position;
|
|
||||||
const int segments = 16;
|
|
||||||
for(int i=0; i<segments; i++)
|
|
||||||
{
|
|
||||||
float p1 = i / (float)segments;
|
|
||||||
float p2 = (i+1) / (float)segments;
|
|
||||||
|
|
||||||
float x1 = Mathf.Cos(p1 * Mathf.PI*2);
|
|
||||||
float y1 = Mathf.Sin(p1 * Mathf.PI*2);
|
|
||||||
|
|
||||||
float x2 = Mathf.Cos(p2 * Mathf.PI*2);
|
|
||||||
float y2 = Mathf.Sin(p2 * Mathf.PI*2);
|
|
||||||
|
|
||||||
Gizmos.DrawLine(origin + new Vector3(x1,0,y1), origin + new Vector3(x2,0,y2));
|
|
||||||
|
|
||||||
if (hemispherical)
|
|
||||||
{
|
|
||||||
x1 = Mathf.Cos(p1 * Mathf.PI);
|
|
||||||
y1 = Mathf.Sin(p1 * Mathf.PI);
|
|
||||||
|
|
||||||
x2 = Mathf.Cos(p2 * Mathf.PI);
|
|
||||||
y2 = Mathf.Sin(p2 * Mathf.PI);
|
|
||||||
}
|
|
||||||
|
|
||||||
Gizmos.DrawLine(origin + new Vector3(x1,y1,0), origin + new Vector3(x2,y2,0));
|
|
||||||
Gizmos.DrawLine(origin + new Vector3(0,y1,x1), origin + new Vector3(0,y2,x2));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 306a56f30ff21b5439963fc745cfe9cc
|
|
||||||
timeCreated: 1526382158
|
|
||||||
licenseType: Store
|
|
||||||
MonoImporter:
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,260 +0,0 @@
|
|||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
using UnityEditor;
|
|
||||||
using UnityEditor.IMGUI.Controls;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
[ExecuteInEditMode]
|
|
||||||
public class BakeryVolume : MonoBehaviour
|
|
||||||
{
|
|
||||||
public enum Encoding
|
|
||||||
{
|
|
||||||
// HDR L1 SH, half-float:
|
|
||||||
// Tex0 = L0, L1z.r
|
|
||||||
// Tex1 = L1x, L1z.g
|
|
||||||
// Tex2 = L1y, L1z.b
|
|
||||||
Half4,
|
|
||||||
|
|
||||||
// LDR L1 SH, 8-bit. Components are stored the same way as in Half4,
|
|
||||||
// but L1 must be unpacked following way:
|
|
||||||
// L1n = (L1n * 2 - 1) * L0 * 0.5 + 0.5
|
|
||||||
RGBA8,
|
|
||||||
|
|
||||||
// LDR L1 SH with monochrome directional component (= single color and direction), 8-bit.
|
|
||||||
// Tex0 = L0 (alpha unused)
|
|
||||||
// Tex1 = L1xyz (alpha unused)
|
|
||||||
RGBA8Mono
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum ShadowmaskEncoding
|
|
||||||
{
|
|
||||||
RGBA8,
|
|
||||||
A8
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool enableBaking = true;
|
|
||||||
public Bounds bounds = new Bounds(Vector3.zero, Vector3.one);
|
|
||||||
public bool adaptiveRes = true;
|
|
||||||
public float voxelsPerUnit = 0.5f;
|
|
||||||
public int resolutionX = 16;
|
|
||||||
public int resolutionY = 16;
|
|
||||||
public int resolutionZ = 16;
|
|
||||||
public Encoding encoding = Encoding.Half4;
|
|
||||||
public ShadowmaskEncoding shadowmaskEncoding = ShadowmaskEncoding.RGBA8;
|
|
||||||
public bool denoise = false;
|
|
||||||
public bool isGlobal = false;
|
|
||||||
public Texture3D bakedTexture0, bakedTexture1, bakedTexture2, bakedMask;
|
|
||||||
|
|
||||||
public static BakeryVolume globalVolume;
|
|
||||||
|
|
||||||
//public bool adjustSamples = true;
|
|
||||||
|
|
||||||
public Vector3 GetMin()
|
|
||||||
{
|
|
||||||
return bounds.min;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Vector3 GetInvSize()
|
|
||||||
{
|
|
||||||
var b = bounds;
|
|
||||||
return new Vector3(1.0f/b.size.x, 1.0f/b.size.y, 1.0f/b.size.z);;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetGlobalParams()
|
|
||||||
{
|
|
||||||
Shader.SetGlobalTexture("_Volume0", bakedTexture0);
|
|
||||||
Shader.SetGlobalTexture("_Volume1", bakedTexture1);
|
|
||||||
Shader.SetGlobalTexture("_Volume2", bakedTexture2);
|
|
||||||
Shader.SetGlobalTexture("_VolumeMask", bakedMask);
|
|
||||||
var b = bounds;
|
|
||||||
var bmin = b.min;
|
|
||||||
var bis = new Vector3(1.0f/b.size.x, 1.0f/b.size.y, 1.0f/b.size.z);;
|
|
||||||
Shader.SetGlobalVector("_GlobalVolumeMin", bmin);
|
|
||||||
Shader.SetGlobalVector("_GlobalVolumeInvSize", bis);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void UpdateBounds()
|
|
||||||
{
|
|
||||||
var pos = transform.position;
|
|
||||||
var size = bounds.size;
|
|
||||||
bounds = new Bounds(pos, size);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Awake()
|
|
||||||
{
|
|
||||||
if (isGlobal)
|
|
||||||
{
|
|
||||||
globalVolume = this;
|
|
||||||
SetGlobalParams();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
[CustomEditor(typeof(BakeryVolume))]
|
|
||||||
public class BakeryVolumeInspector : Editor
|
|
||||||
{
|
|
||||||
BoxBoundsHandle boundsHandle = new BoxBoundsHandle(typeof(BakeryVolumeInspector).GetHashCode());
|
|
||||||
|
|
||||||
SerializedProperty ftraceAdaptiveRes, ftraceResX, ftraceResY, ftraceResZ, ftraceVoxelsPerUnit, ftraceAdjustSamples, ftraceEnableBaking, ftraceEncoding, ftraceShadowmaskEncoding, ftraceDenoise, ftraceGlobal;
|
|
||||||
|
|
||||||
bool showExperimental = false;
|
|
||||||
|
|
||||||
void OnEnable()
|
|
||||||
{
|
|
||||||
ftraceAdaptiveRes = serializedObject.FindProperty("adaptiveRes");
|
|
||||||
ftraceVoxelsPerUnit = serializedObject.FindProperty("voxelsPerUnit");
|
|
||||||
ftraceResX = serializedObject.FindProperty("resolutionX");
|
|
||||||
ftraceResY = serializedObject.FindProperty("resolutionY");
|
|
||||||
ftraceResZ = serializedObject.FindProperty("resolutionZ");
|
|
||||||
ftraceEnableBaking = serializedObject.FindProperty("enableBaking");
|
|
||||||
ftraceEncoding = serializedObject.FindProperty("encoding");
|
|
||||||
ftraceShadowmaskEncoding = serializedObject.FindProperty("shadowmaskEncoding");
|
|
||||||
ftraceDenoise = serializedObject.FindProperty("denoise");
|
|
||||||
ftraceGlobal = serializedObject.FindProperty("isGlobal");
|
|
||||||
//ftraceAdjustSamples = serializedObject.FindProperty("adjustSamples");
|
|
||||||
}
|
|
||||||
|
|
||||||
string F(float f)
|
|
||||||
{
|
|
||||||
// Unity keeps using comma for float printing on some systems since ~2018, even if system-wide decimal symbol is "."
|
|
||||||
return (f + "").Replace(",", ".");
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnInspectorGUI()
|
|
||||||
{
|
|
||||||
serializedObject.Update();
|
|
||||||
var vol = target as BakeryVolume;
|
|
||||||
|
|
||||||
EditorGUILayout.PropertyField(ftraceEnableBaking, new GUIContent("Enable baking", "Should the volume be (re)computed? Disable to prevent overwriting existing data."));
|
|
||||||
bool wasGlobal = ftraceGlobal.boolValue;
|
|
||||||
EditorGUILayout.PropertyField(ftraceGlobal, new GUIContent("Global", "Automatically assign this volume to all volume-compatible shaders, unless they have overrides."));
|
|
||||||
if (!wasGlobal && ftraceGlobal.boolValue)
|
|
||||||
{
|
|
||||||
(target as BakeryVolume).SetGlobalParams();
|
|
||||||
}
|
|
||||||
EditorGUILayout.PropertyField(ftraceDenoise, new GUIContent("Denoise", "Apply denoising after baking the volume."));
|
|
||||||
EditorGUILayout.Space();
|
|
||||||
|
|
||||||
EditorGUILayout.PropertyField(ftraceAdaptiveRes, new GUIContent("Adaptive resolution", "Calculate voxel resolution based on size?"));
|
|
||||||
if (ftraceAdaptiveRes.boolValue)
|
|
||||||
{
|
|
||||||
EditorGUILayout.PropertyField(ftraceVoxelsPerUnit, new GUIContent("Voxels per unit"));
|
|
||||||
|
|
||||||
GUI.enabled = false;
|
|
||||||
var size = vol.bounds.size;
|
|
||||||
ftraceResX.intValue = System.Math.Max((int)(size.x * vol.voxelsPerUnit), 1);
|
|
||||||
ftraceResY.intValue = System.Math.Max((int)(size.y * vol.voxelsPerUnit), 1);
|
|
||||||
ftraceResZ.intValue = System.Math.Max((int)(size.z * vol.voxelsPerUnit), 1);
|
|
||||||
}
|
|
||||||
EditorGUILayout.PropertyField(ftraceResX, new GUIContent("Resolution X"));
|
|
||||||
EditorGUILayout.PropertyField(ftraceResY, new GUIContent("Resolution Y"));
|
|
||||||
EditorGUILayout.PropertyField(ftraceResZ, new GUIContent("Resolution Z"));
|
|
||||||
GUI.enabled = true;
|
|
||||||
|
|
||||||
//EditorGUILayout.PropertyField(ftraceAdjustSamples, new GUIContent("Adjust sample positions", "Fixes light leaking from inside surfaces"));
|
|
||||||
|
|
||||||
EditorGUILayout.Space();
|
|
||||||
|
|
||||||
showExperimental = EditorGUILayout.Foldout(showExperimental, "Experimental", EditorStyles.foldout);
|
|
||||||
if (showExperimental)
|
|
||||||
{
|
|
||||||
EditorGUILayout.PropertyField(ftraceEncoding, new GUIContent("Encoding"));
|
|
||||||
EditorGUILayout.PropertyField(ftraceShadowmaskEncoding, new GUIContent("Shadowmask Encoding"));
|
|
||||||
}
|
|
||||||
|
|
||||||
EditorGUILayout.Space();
|
|
||||||
|
|
||||||
if (vol.bakedTexture0 == null)
|
|
||||||
{
|
|
||||||
EditorGUILayout.LabelField("Baked texture: none");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
EditorGUILayout.LabelField("Baked texture: " + vol.bakedTexture0.name);
|
|
||||||
}
|
|
||||||
|
|
||||||
EditorGUILayout.Space();
|
|
||||||
|
|
||||||
var wrapObj = EditorGUILayout.ObjectField("Wrap to object", null, typeof(GameObject), true) as GameObject;
|
|
||||||
if (wrapObj != null)
|
|
||||||
{
|
|
||||||
var mrs = wrapObj.GetComponentsInChildren<MeshRenderer>() as MeshRenderer[];
|
|
||||||
if (mrs.Length > 0)
|
|
||||||
{
|
|
||||||
var b = mrs[0].bounds;
|
|
||||||
for(int i=1; i<mrs.Length; i++)
|
|
||||||
{
|
|
||||||
b.Encapsulate(mrs[i].bounds);
|
|
||||||
}
|
|
||||||
Undo.RecordObject(vol, "Change Bounds");
|
|
||||||
vol.transform.position = b.center;
|
|
||||||
vol.bounds = b;
|
|
||||||
Debug.Log("Bounds set");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Debug.LogError("No mesh renderers to wrap to");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var boxCol = vol.GetComponent<BoxCollider>();
|
|
||||||
if (boxCol != null)
|
|
||||||
{
|
|
||||||
if (GUILayout.Button("Set from box collider"))
|
|
||||||
{
|
|
||||||
Undo.RecordObject(vol, "Change Bounds");
|
|
||||||
vol.bounds = boxCol.bounds;
|
|
||||||
}
|
|
||||||
if (GUILayout.Button("Set to box collider"))
|
|
||||||
{
|
|
||||||
boxCol.center = Vector3.zero;
|
|
||||||
boxCol.size = vol.bounds.size;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var bmin = vol.bounds.min;
|
|
||||||
var bmax = vol.bounds.max;
|
|
||||||
var bsize = vol.bounds.size;
|
|
||||||
EditorGUILayout.LabelField("Min: " + bmin.x+", "+bmin.y+", "+bmin.z);
|
|
||||||
EditorGUILayout.LabelField("Max: " + bmax.x+", "+bmax.y+", "+bmax.z);
|
|
||||||
|
|
||||||
if (GUILayout.Button("Copy bounds to clipboard"))
|
|
||||||
{
|
|
||||||
GUIUtility.systemCopyBuffer = "float3 bmin = float3(" + F(bmin.x)+", "+F(bmin.y)+", "+F(bmin.z) + "); float3 bmax = float3(" + F(bmax.x)+", "+F(bmax.y)+", "+F(bmax.z) + "); float3 binvsize = float3(" + F(1.0f/bsize.x)+", "+F(1.0f/bsize.y)+", "+F(1.0f/bsize.z) + ");";
|
|
||||||
}
|
|
||||||
|
|
||||||
serializedObject.ApplyModifiedProperties();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected virtual void OnSceneGUI()
|
|
||||||
{
|
|
||||||
var vol = (BakeryVolume)target;
|
|
||||||
|
|
||||||
boundsHandle.center = vol.transform.position;
|
|
||||||
boundsHandle.size = vol.bounds.size;
|
|
||||||
|
|
||||||
EditorGUI.BeginChangeCheck();
|
|
||||||
boundsHandle.DrawHandle();
|
|
||||||
if (EditorGUI.EndChangeCheck())
|
|
||||||
{
|
|
||||||
Undo.RecordObject(vol, "Change Bounds");
|
|
||||||
|
|
||||||
Bounds newBounds = new Bounds();
|
|
||||||
newBounds.center = boundsHandle.center;
|
|
||||||
newBounds.size = boundsHandle.size;
|
|
||||||
vol.bounds = newBounds;
|
|
||||||
vol.transform.position = boundsHandle.center;
|
|
||||||
}
|
|
||||||
else if ((vol.bounds.center - boundsHandle.center).sqrMagnitude > 0.0001f)
|
|
||||||
{
|
|
||||||
Bounds newBounds = new Bounds();
|
|
||||||
newBounds.center = boundsHandle.center;
|
|
||||||
newBounds.size = boundsHandle.size;
|
|
||||||
vol.bounds = newBounds;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
@ -1,12 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 17ce3c1d3490b7143a67ebdc73cab6c1
|
|
||||||
timeCreated: 1589618132
|
|
||||||
licenseType: Store
|
|
||||||
MonoImporter:
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: ab12b7d692d7ee34eaf8dab0da156ff0
|
|
||||||
folderAsset: yes
|
|
||||||
timeCreated: 1606240228
|
|
||||||
licenseType: Store
|
|
||||||
DefaultImporter:
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
Binary file not shown.
@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: d2aec06f3f96cab4b822ed687e9e5ad4
|
|
||||||
timeCreated: 1531146949
|
|
||||||
licenseType: Store
|
|
||||||
DefaultImporter:
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
BIN
Assets/Bakery/emptyDirection.tga
(Stored with Git LFS)
BIN
Assets/Bakery/emptyDirection.tga
(Stored with Git LFS)
Binary file not shown.
@ -1,100 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 04afea73344b7d049b5b7ac5ae315dd5
|
|
||||||
timeCreated: 1539193964
|
|
||||||
licenseType: Store
|
|
||||||
TextureImporter:
|
|
||||||
fileIDToRecycleName: {}
|
|
||||||
serializedVersion: 4
|
|
||||||
mipmaps:
|
|
||||||
mipMapMode: 0
|
|
||||||
enableMipMap: 0
|
|
||||||
sRGBTexture: 0
|
|
||||||
linearTexture: 0
|
|
||||||
fadeOut: 0
|
|
||||||
borderMipMap: 0
|
|
||||||
mipMapFadeDistanceStart: 1
|
|
||||||
mipMapFadeDistanceEnd: 3
|
|
||||||
bumpmap:
|
|
||||||
convertToNormalMap: 0
|
|
||||||
externalNormalMap: 0
|
|
||||||
heightScale: 0.25
|
|
||||||
normalMapFilter: 0
|
|
||||||
isReadable: 0
|
|
||||||
grayScaleToAlpha: 0
|
|
||||||
generateCubemap: 6
|
|
||||||
cubemapConvolution: 0
|
|
||||||
seamlessCubemap: 0
|
|
||||||
textureFormat: 1
|
|
||||||
maxTextureSize: 2048
|
|
||||||
textureSettings:
|
|
||||||
filterMode: -1
|
|
||||||
aniso: -1
|
|
||||||
mipBias: -1
|
|
||||||
wrapMode: -1
|
|
||||||
nPOTScale: 1
|
|
||||||
lightmap: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
spriteMode: 0
|
|
||||||
spriteExtrude: 1
|
|
||||||
spriteMeshType: 1
|
|
||||||
alignment: 0
|
|
||||||
spritePivot: {x: 0.5, y: 0.5}
|
|
||||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
spritePixelsToUnits: 100
|
|
||||||
alphaUsage: 1
|
|
||||||
alphaIsTransparency: 0
|
|
||||||
spriteTessellationDetail: -1
|
|
||||||
textureType: 0
|
|
||||||
textureShape: 1
|
|
||||||
maxTextureSizeSet: 0
|
|
||||||
compressionQualitySet: 0
|
|
||||||
textureFormatSet: 0
|
|
||||||
platformSettings:
|
|
||||||
- buildTarget: DefaultTexturePlatform
|
|
||||||
maxTextureSize: 2048
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
- buildTarget: Standalone
|
|
||||||
maxTextureSize: 2048
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
- buildTarget: iPhone
|
|
||||||
maxTextureSize: 2048
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
- buildTarget: Android
|
|
||||||
maxTextureSize: 2048
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
- buildTarget: WebGL
|
|
||||||
maxTextureSize: 2048
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
spriteSheet:
|
|
||||||
serializedVersion: 2
|
|
||||||
sprites: []
|
|
||||||
outline: []
|
|
||||||
spritePackingTag:
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
Binary file not shown.
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 8b4edc58204bf354c9dd12ceacc42350
|
|
||||||
timeCreated: 1534495245
|
|
||||||
licenseType: Store
|
|
||||||
NativeFormatImporter:
|
|
||||||
mainObjectFileID: -1
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,42 +0,0 @@
|
|||||||
Shader "Hidden/ftBlack"
|
|
||||||
{
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
Name "META"
|
|
||||||
Tags {"LightMode"="Meta"}
|
|
||||||
Cull Off
|
|
||||||
CGPROGRAM
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
|
|
||||||
struct VertexInput
|
|
||||||
{
|
|
||||||
float2 uv1 : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f_meta2
|
|
||||||
{
|
|
||||||
float4 pos : SV_POSITION;
|
|
||||||
};
|
|
||||||
|
|
||||||
v2f_meta2 vert_meta2 (VertexInput v)
|
|
||||||
{
|
|
||||||
v2f_meta2 o;
|
|
||||||
o.pos = float4(((v.uv1.xy * unity_LightmapST.xy + unity_LightmapST.zw)*2-1) * float2(1,-1), 0.5, 1);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
float4 frag_meta2 (v2f_meta2 i): SV_Target
|
|
||||||
{
|
|
||||||
return float4(0,0,0,1);
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma vertex vert_meta2
|
|
||||||
#pragma fragment frag_meta2
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: e6fa4030aa9e5fd499a934ca8bf68034
|
|
||||||
timeCreated: 1541957594
|
|
||||||
licenseType: Store
|
|
||||||
ShaderImporter:
|
|
||||||
defaultTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,80 +0,0 @@
|
|||||||
Shader "Hidden/ftCubemap2Strip"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
_MainTex ("Texture", 2D) = "white" {}
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
// No culling or depth
|
|
||||||
Cull Off ZWrite Off ZTest Always
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
};
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = v.uv;
|
|
||||||
#if UNITY_UV_STARTS_AT_TOP
|
|
||||||
o.uv.y = 1-o.uv.y;
|
|
||||||
#endif
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
samplerCUBE _MainTex;
|
|
||||||
float gammaMode;
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
float3 vec;
|
|
||||||
int quad = floor(i.uv.x * 6);
|
|
||||||
|
|
||||||
float2 st = frac(i.uv * float2(6,1)) * 2.0 - 1.0;
|
|
||||||
st.x = -st.x;
|
|
||||||
//st.y = -st.y;
|
|
||||||
|
|
||||||
if (quad == 0) {
|
|
||||||
vec = float3(1, -st.y, st.x);
|
|
||||||
} else if (quad == 1) {
|
|
||||||
vec = float3(-1, -st.y, -st.x);
|
|
||||||
} else if (quad == 2) {
|
|
||||||
vec = float3(-st.y, 1, -st.x);
|
|
||||||
} else if (quad == 3) {
|
|
||||||
vec = float3(-st.y, -1, st.x);
|
|
||||||
} else if (quad == 4) {
|
|
||||||
vec = float3(-st.x, -st.y, 1);
|
|
||||||
} else {
|
|
||||||
vec = float3(st.x, -st.y, -1);
|
|
||||||
}
|
|
||||||
|
|
||||||
vec = -vec;
|
|
||||||
|
|
||||||
float4 col = texCUBE(_MainTex, vec);
|
|
||||||
|
|
||||||
if (gammaMode > 0.5f) col.rgb = pow(col.rgb, 2.2f);
|
|
||||||
|
|
||||||
return col;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: c73e5686bbd8c334da43020465ac8360
|
|
||||||
timeCreated: 1526836856
|
|
||||||
licenseType: Store
|
|
||||||
ShaderImporter:
|
|
||||||
defaultTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,79 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!21 &2100000
|
|
||||||
Material:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: ftDefaultAreaLightMat
|
|
||||||
m_Shader: {fileID: 4800000, guid: 44078aff4de957844a86ead7ad169295, type: 3}
|
|
||||||
m_ShaderKeywords:
|
|
||||||
m_LightmapFlags: 4
|
|
||||||
m_EnableInstancingVariants: 0
|
|
||||||
m_DoubleSidedGI: 0
|
|
||||||
m_CustomRenderQueue: -1
|
|
||||||
stringTagMap: {}
|
|
||||||
disabledShaderPasses: []
|
|
||||||
m_SavedProperties:
|
|
||||||
serializedVersion: 3
|
|
||||||
m_TexEnvs:
|
|
||||||
- _BumpMap:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- _DetailAlbedoMap:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- _DetailMask:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- _DetailNormalMap:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- _EmissionMap:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- _MainTex:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- _MetallicGlossMap:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- _OcclusionMap:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
- _ParallaxMap:
|
|
||||||
m_Texture: {fileID: 0}
|
|
||||||
m_Scale: {x: 1, y: 1}
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
m_Floats:
|
|
||||||
- _BumpScale: 1
|
|
||||||
- _Cutoff: 0.5
|
|
||||||
- _DetailNormalMapScale: 1
|
|
||||||
- _DstBlend: 0
|
|
||||||
- _GlossMapScale: 1
|
|
||||||
- _Glossiness: 0.5
|
|
||||||
- _GlossyReflections: 1
|
|
||||||
- _Metallic: 0
|
|
||||||
- _Mode: 0
|
|
||||||
- _OcclusionStrength: 1
|
|
||||||
- _Parallax: 0.02
|
|
||||||
- _SmoothnessTextureChannel: 0
|
|
||||||
- _SpecularHighlights: 1
|
|
||||||
- _SrcBlend: 1
|
|
||||||
- _UVSec: 0
|
|
||||||
- _ZWrite: 1
|
|
||||||
- intensity: 1
|
|
||||||
m_Colors:
|
|
||||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
|
||||||
m_BuildTextureStacks: []
|
|
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: ea803d5e2c877f84e8ca6599c9cefb15
|
|
||||||
timeCreated: 1527799464
|
|
||||||
licenseType: Store
|
|
||||||
NativeFormatImporter:
|
|
||||||
mainObjectFileID: 2100000
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,489 +0,0 @@
|
|||||||
%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: c789d55c4f1cff34799abba03737e8f7, type: 3}
|
|
||||||
m_Name: ftDefaultGlobalStorage
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
modifiedAssetPathList:
|
|
||||||
- Assets/Bakery/examples/content/sponza/sponza.FBX
|
|
||||||
modifiedAssetPaddingHash:
|
|
||||||
modifiedMeshList: []
|
|
||||||
modifiedMeshPaddingList:
|
|
||||||
modifiedAssets:
|
|
||||||
- meshName:
|
|
||||||
- sponza_00
|
|
||||||
- sponza_01
|
|
||||||
- sponza_03
|
|
||||||
- sponza_05
|
|
||||||
- sponza_06
|
|
||||||
- sponza_07
|
|
||||||
- sponza_08
|
|
||||||
- sponza_09
|
|
||||||
- sponza_10
|
|
||||||
- sponza_11
|
|
||||||
- sponza_12
|
|
||||||
- sponza_13
|
|
||||||
- sponza_14
|
|
||||||
- sponza_15
|
|
||||||
- sponza_16
|
|
||||||
- sponza_17
|
|
||||||
- sponza_18
|
|
||||||
- sponza_19
|
|
||||||
- sponza_20
|
|
||||||
- sponza_21
|
|
||||||
- sponza_22
|
|
||||||
- sponza_23
|
|
||||||
- sponza_24
|
|
||||||
- sponza_25
|
|
||||||
- sponza_26
|
|
||||||
- sponza_27
|
|
||||||
- sponza_28
|
|
||||||
- sponza_29
|
|
||||||
- sponza_30
|
|
||||||
- sponza_31
|
|
||||||
- sponza_32
|
|
||||||
- sponza_33
|
|
||||||
- sponza_34
|
|
||||||
- sponza_35
|
|
||||||
- sponza_36
|
|
||||||
- sponza_37
|
|
||||||
- sponza_38
|
|
||||||
- sponza_39
|
|
||||||
- sponza_40
|
|
||||||
- sponza_41
|
|
||||||
- sponza_42
|
|
||||||
- sponza_43
|
|
||||||
- sponza_44
|
|
||||||
- sponza_45
|
|
||||||
- sponza_46
|
|
||||||
- sponza_47
|
|
||||||
- sponza_48
|
|
||||||
- sponza_49
|
|
||||||
- sponza_50
|
|
||||||
- sponza_51
|
|
||||||
- sponza_52
|
|
||||||
- sponza_53
|
|
||||||
- sponza_54
|
|
||||||
- sponza_55
|
|
||||||
- sponza_56
|
|
||||||
- sponza_57
|
|
||||||
- sponza_58
|
|
||||||
- sponza_59
|
|
||||||
- sponza_60
|
|
||||||
- sponza_61
|
|
||||||
- sponza_62
|
|
||||||
- sponza_63
|
|
||||||
- sponza_64
|
|
||||||
- sponza_65
|
|
||||||
- sponza_67
|
|
||||||
- sponza_68
|
|
||||||
- sponza_69
|
|
||||||
- sponza_70
|
|
||||||
- sponza_71
|
|
||||||
- sponza_72
|
|
||||||
- sponza_73
|
|
||||||
- sponza_74
|
|
||||||
- sponza_75
|
|
||||||
- sponza_76
|
|
||||||
- sponza_77
|
|
||||||
- sponza_78
|
|
||||||
- sponza_79
|
|
||||||
- sponza_80
|
|
||||||
- sponza_81
|
|
||||||
- sponza_82
|
|
||||||
- sponza_83
|
|
||||||
- sponza_84
|
|
||||||
- sponza_85
|
|
||||||
- sponza_86
|
|
||||||
- sponza_87
|
|
||||||
- sponza_88
|
|
||||||
- sponza_89
|
|
||||||
- sponza_90
|
|
||||||
- sponza_91
|
|
||||||
- sponza_92
|
|
||||||
- sponza_93
|
|
||||||
- sponza_94
|
|
||||||
- sponza_95
|
|
||||||
- sponza_96
|
|
||||||
- sponza_97
|
|
||||||
- sponza_98
|
|
||||||
- sponza_99
|
|
||||||
- sponza_100
|
|
||||||
- sponza_101
|
|
||||||
- sponza_102
|
|
||||||
- sponza_103
|
|
||||||
- sponza_104
|
|
||||||
- sponza_105
|
|
||||||
- sponza_106
|
|
||||||
- sponza_107
|
|
||||||
- sponza_108
|
|
||||||
- sponza_109
|
|
||||||
- sponza_110
|
|
||||||
- sponza_111
|
|
||||||
- sponza_112
|
|
||||||
- sponza_113
|
|
||||||
- sponza_114
|
|
||||||
- sponza_115
|
|
||||||
- sponza_116
|
|
||||||
- sponza_117
|
|
||||||
- sponza_118
|
|
||||||
- sponza_119
|
|
||||||
- sponza_120
|
|
||||||
- sponza_121
|
|
||||||
- sponza_122
|
|
||||||
- sponza_123
|
|
||||||
- sponza_124
|
|
||||||
- sponza_125
|
|
||||||
- sponza_126
|
|
||||||
- sponza_127
|
|
||||||
- sponza_128
|
|
||||||
- sponza_129
|
|
||||||
- sponza_130
|
|
||||||
- sponza_131
|
|
||||||
- sponza_132
|
|
||||||
- sponza_133
|
|
||||||
- sponza_134
|
|
||||||
- sponza_135
|
|
||||||
- sponza_136
|
|
||||||
- sponza_137
|
|
||||||
- sponza_138
|
|
||||||
- sponza_139
|
|
||||||
- sponza_140
|
|
||||||
- sponza_141
|
|
||||||
- sponza_142
|
|
||||||
- sponza_143
|
|
||||||
- sponza_144
|
|
||||||
- sponza_145
|
|
||||||
- sponza_146
|
|
||||||
- sponza_147
|
|
||||||
- sponza_148
|
|
||||||
- sponza_149
|
|
||||||
- sponza_150
|
|
||||||
- sponza_151
|
|
||||||
- sponza_152
|
|
||||||
- sponza_153
|
|
||||||
- sponza_154
|
|
||||||
- sponza_155
|
|
||||||
- sponza_156
|
|
||||||
- sponza_157
|
|
||||||
- sponza_158
|
|
||||||
- sponza_159
|
|
||||||
- sponza_160
|
|
||||||
- sponza_161
|
|
||||||
- sponza_162
|
|
||||||
- sponza_163
|
|
||||||
- sponza_164
|
|
||||||
- sponza_165
|
|
||||||
- sponza_166
|
|
||||||
- sponza_167
|
|
||||||
- sponza_168
|
|
||||||
- sponza_169
|
|
||||||
- sponza_170
|
|
||||||
- sponza_171
|
|
||||||
- sponza_172
|
|
||||||
- sponza_173
|
|
||||||
- sponza_174
|
|
||||||
- sponza_175
|
|
||||||
- sponza_176
|
|
||||||
- sponza_177
|
|
||||||
- sponza_178
|
|
||||||
- sponza_179
|
|
||||||
- sponza_180
|
|
||||||
- sponza_181
|
|
||||||
- sponza_182
|
|
||||||
- sponza_183
|
|
||||||
- sponza_184
|
|
||||||
- sponza_185
|
|
||||||
- sponza_186
|
|
||||||
- sponza_187
|
|
||||||
- sponza_188
|
|
||||||
- sponza_189
|
|
||||||
- sponza_190
|
|
||||||
- sponza_191
|
|
||||||
- sponza_192
|
|
||||||
- sponza_193
|
|
||||||
- sponza_194
|
|
||||||
- sponza_195
|
|
||||||
- sponza_196
|
|
||||||
- sponza_197
|
|
||||||
- sponza_198
|
|
||||||
- sponza_199
|
|
||||||
- sponza_200
|
|
||||||
- sponza_201
|
|
||||||
- sponza_202
|
|
||||||
- sponza_203
|
|
||||||
- sponza_204
|
|
||||||
- sponza_205
|
|
||||||
- sponza_206
|
|
||||||
- sponza_207
|
|
||||||
- sponza_208
|
|
||||||
- sponza_209
|
|
||||||
- sponza_210
|
|
||||||
- sponza_211
|
|
||||||
- sponza_212
|
|
||||||
- sponza_213
|
|
||||||
- sponza_214
|
|
||||||
- sponza_215
|
|
||||||
- sponza_216
|
|
||||||
- sponza_217
|
|
||||||
- sponza_218
|
|
||||||
- sponza_219
|
|
||||||
- sponza_220
|
|
||||||
- sponza_221
|
|
||||||
- sponza_222
|
|
||||||
- sponza_223
|
|
||||||
- sponza_224
|
|
||||||
- sponza_225
|
|
||||||
- sponza_226
|
|
||||||
- sponza_227
|
|
||||||
- sponza_228
|
|
||||||
- sponza_229
|
|
||||||
- sponza_230
|
|
||||||
- sponza_231
|
|
||||||
- sponza_232
|
|
||||||
- sponza_233
|
|
||||||
- sponza_234
|
|
||||||
- sponza_235
|
|
||||||
- sponza_236
|
|
||||||
- sponza_237
|
|
||||||
- sponza_238
|
|
||||||
- sponza_239
|
|
||||||
- sponza_240
|
|
||||||
- sponza_241
|
|
||||||
- sponza_242
|
|
||||||
- sponza_243
|
|
||||||
- sponza_244
|
|
||||||
- sponza_245
|
|
||||||
- sponza_246
|
|
||||||
- sponza_247
|
|
||||||
- sponza_248
|
|
||||||
- sponza_249
|
|
||||||
- sponza_250
|
|
||||||
- sponza_251
|
|
||||||
- sponza_252
|
|
||||||
- sponza_253
|
|
||||||
- sponza_254
|
|
||||||
- sponza_255
|
|
||||||
- sponza_256
|
|
||||||
- sponza_257
|
|
||||||
- sponza_259
|
|
||||||
- sponza_260
|
|
||||||
- sponza_261
|
|
||||||
- sponza_262
|
|
||||||
- sponza_263
|
|
||||||
- sponza_264
|
|
||||||
- sponza_265
|
|
||||||
- sponza_266
|
|
||||||
- sponza_267
|
|
||||||
- sponza_268
|
|
||||||
- sponza_269
|
|
||||||
- sponza_270
|
|
||||||
- sponza_271
|
|
||||||
- sponza_272
|
|
||||||
- sponza_273
|
|
||||||
- sponza_274
|
|
||||||
- sponza_275
|
|
||||||
- sponza_276
|
|
||||||
- sponza_277
|
|
||||||
- sponza_278
|
|
||||||
- sponza_279
|
|
||||||
- sponza_280
|
|
||||||
- sponza_281
|
|
||||||
- sponza_282
|
|
||||||
- sponza_283
|
|
||||||
- sponza_284
|
|
||||||
- sponza_285
|
|
||||||
- sponza_286
|
|
||||||
- sponza_287
|
|
||||||
- sponza_288
|
|
||||||
- sponza_289
|
|
||||||
- sponza_290
|
|
||||||
- sponza_291
|
|
||||||
- sponza_292
|
|
||||||
- sponza_293
|
|
||||||
- sponza_294
|
|
||||||
- sponza_295
|
|
||||||
- sponza_296
|
|
||||||
- sponza_297
|
|
||||||
- sponza_298
|
|
||||||
- sponza_299
|
|
||||||
- sponza_300
|
|
||||||
- sponza_301
|
|
||||||
- sponza_302
|
|
||||||
- sponza_303
|
|
||||||
- sponza_304
|
|
||||||
- sponza_305
|
|
||||||
- sponza_306
|
|
||||||
- sponza_307
|
|
||||||
- sponza_308
|
|
||||||
- sponza_309
|
|
||||||
- sponza_310
|
|
||||||
- sponza_311
|
|
||||||
- sponza_312
|
|
||||||
- sponza_313
|
|
||||||
- sponza_314
|
|
||||||
- sponza_315
|
|
||||||
- sponza_316
|
|
||||||
- sponza_317
|
|
||||||
- sponza_318
|
|
||||||
- sponza_319
|
|
||||||
- sponza_320
|
|
||||||
- sponza_321
|
|
||||||
- sponza_322
|
|
||||||
- sponza_323
|
|
||||||
- sponza_324
|
|
||||||
- sponza_325
|
|
||||||
- sponza_326
|
|
||||||
- sponza_327
|
|
||||||
- sponza_328
|
|
||||||
- sponza_329
|
|
||||||
- sponza_330
|
|
||||||
- sponza_331
|
|
||||||
- sponza_332
|
|
||||||
- sponza_333
|
|
||||||
- sponza_334
|
|
||||||
- sponza_335
|
|
||||||
- sponza_336
|
|
||||||
- sponza_337
|
|
||||||
- sponza_338
|
|
||||||
- sponza_339
|
|
||||||
- sponza_340
|
|
||||||
- sponza_341
|
|
||||||
- sponza_342
|
|
||||||
- sponza_343
|
|
||||||
- sponza_344
|
|
||||||
- sponza_345
|
|
||||||
- sponza_346
|
|
||||||
- sponza_347
|
|
||||||
- sponza_348
|
|
||||||
- sponza_349
|
|
||||||
- sponza_350
|
|
||||||
- sponza_351
|
|
||||||
- sponza_352
|
|
||||||
- sponza_353
|
|
||||||
- sponza_354
|
|
||||||
- sponza_355
|
|
||||||
- sponza_356
|
|
||||||
- sponza_357
|
|
||||||
- sponza_358
|
|
||||||
- sponza_359
|
|
||||||
- sponza_360
|
|
||||||
- sponza_361
|
|
||||||
- sponza_362
|
|
||||||
- sponza_363
|
|
||||||
- sponza_364
|
|
||||||
- sponza_365
|
|
||||||
- sponza_366
|
|
||||||
- sponza_367
|
|
||||||
- sponza_368
|
|
||||||
- sponza_369
|
|
||||||
- sponza_370
|
|
||||||
- sponza_371
|
|
||||||
- sponza_372
|
|
||||||
- sponza_373
|
|
||||||
- sponza_374
|
|
||||||
- sponza_375
|
|
||||||
- sponza_376
|
|
||||||
- sponza_377
|
|
||||||
- sponza_378
|
|
||||||
- sponza_381
|
|
||||||
padding: 2e000000460000002a000000110000000e0000000c0000000400000033000000330000003300000033000000330000003300000033000000330000000a00000007000000060000002b0000002b00000011000000140000001400000014000000140000002a0000001d000000320000003200000032000000320000002a000000080000000d0000000500000087000000fa00000087000000fa00000087000000fa00000087000000fa00000087000000fb00000087000000fb00000087000000fb00000087000000fb00000087000000fb00000051000000510000005100000051000000510000005100000051000000510000005100000051000000510000000c00000006000000060000002700000028000000390000002b000000150000002700000000010000ba0000009b0000009b000000b70000009d000000b7000000b7000000b70000009b000000b70000009d000000b7000000b7000000b70000009b0000009b0000009b00000083000000ba00000000010000ba0000009b0000009b000000b70000009d000000b7000000b7000000b70000009b000000b70000009d000000b7000000b7000000b70000009b0000009b0000009b00000083000000000100002700000006000000270000002700000027000000270000002d0000001000000010000000230000006a000000000100006a000000000100006a000000000100006a000000000100001e0000002c000000210000005c000000000100005c000000000100005c000000000100005c000000000100001a00000026000000210000005c000000000100005c000000000100005c000000000100005c000000000100001a00000026000000210000005c000000000100005c000000000100005c000000000100005c000000000100001a00000026000000210000005c000000000100005c000000000100005c000000000100005c000000000100001a00000026000000210000005c000000000100005c000000000100005c000000000100005c000000000100001a00000026000000210000005c000000000100005c000000000100005c000000000100005c000000000100001a00000026000000210000005c000000000100005c000000000100005c000000000100005c000000000100001a00000026000000210000005c000000000100005c000000000100005c000000000100005c000000000100001a00000026000000210000005c000000000100005c000000000100005c000000000100005c000000000100001a00000026000000210000005c000000000100005c000000000100005c000000000100005c000000000100001a00000026000000230000006a000000000100006a000000000100006a000000000100006a000000000100001e0000002c000000630000004300000000010000000100004300000000010000430000000001000043000000430000009400000094000000430000009400000043000000940000004300000024000000270000004600000030000000360000002d000000360000001d0000001d0000001d0000001d0000001d0000001d0000001d0000001d00000000010000ad0000000001000000010000ad0000000001000000010000ad0000000001000000010000ad0000000001000000010000ad0000000001000000010000ad0000000001000000010000ad0000000001000000010000ad0000000001000000010000ad0000000001000000010000ad000000000100001b0000001b0000001b0000001b0000001b0000001b0000001b0000001b0000001b0000001b000000000100000001000000010000000100008c00000000010000000100000001000000010000000100000001000000010000000100008c00000000010000000100000001000000010000000100000001000000010000000100008c00000000010000000100000001000000010000000100000001000000010000000100008c000000000100000001000000010000000100004600000046000000460000004900000049000000490000004900000024000000240000002400000024000000220000001800000004000000
|
|
||||||
unwrapper:
|
|
||||||
assetList:
|
|
||||||
- Assets/Bakery/examples/content/sponza/bush.FBX
|
|
||||||
- Assets/Bakery/examples/content/floor_lamp.FBX
|
|
||||||
uvOverlapAssetList: 00000000ffffffff
|
|
||||||
xatlasWarningShown: 0
|
|
||||||
foundCompatibleSetup: 0
|
|
||||||
gpuName:
|
|
||||||
runsNonRTX: 1
|
|
||||||
runsOptix5: 1
|
|
||||||
runsOptix6: 1
|
|
||||||
runsOptix7: 1
|
|
||||||
runsOIDN: 1
|
|
||||||
alwaysEnableRTX: 0
|
|
||||||
checkerPreviewOn: 0
|
|
||||||
rtSceneViewPreviewOn: 0
|
|
||||||
renderSettingsBounces: 5
|
|
||||||
renderSettingsGISamples: 16
|
|
||||||
renderSettingsGIBackFaceWeight: 0
|
|
||||||
renderSettingsTileSize: 512
|
|
||||||
renderSettingsPriority: 2
|
|
||||||
renderSettingsTexelsPerUnit: 20
|
|
||||||
renderSettingsForceRefresh: 1
|
|
||||||
renderSettingsForceRebuildGeometry: 1
|
|
||||||
renderSettingsPerformRendering: 1
|
|
||||||
renderSettingsUserRenderMode: 0
|
|
||||||
renderSettingsDistanceShadowmask: 0
|
|
||||||
renderSettingsSettingsMode: 0
|
|
||||||
renderSettingsFixSeams: 1
|
|
||||||
renderSettingsDenoise: 1
|
|
||||||
renderSettingsDenoise2x: 0
|
|
||||||
renderSettingsEncode: 1
|
|
||||||
renderSettingsEncodeMode: 0
|
|
||||||
renderSettingsOverwriteWarning: 0
|
|
||||||
renderSettingsAutoAtlas: 1
|
|
||||||
renderSettingsUnwrapUVs: 1
|
|
||||||
renderSettingsForceDisableUnwrapUVs: 0
|
|
||||||
renderSettingsMaxAutoResolution: 4096
|
|
||||||
renderSettingsMinAutoResolution: 16
|
|
||||||
renderSettingsUnloadScenes: 1
|
|
||||||
renderSettingsAdjustSamples: 1
|
|
||||||
renderSettingsGILODMode: 0
|
|
||||||
renderSettingsGILODModeEnabled: 1
|
|
||||||
renderSettingsCheckOverlaps: 0
|
|
||||||
renderSettingsSkipOutOfBoundsUVs: 1
|
|
||||||
renderSettingsHackEmissiveBoost: 1
|
|
||||||
renderSettingsHackIndirectBoost: 1
|
|
||||||
renderSettingsTempPath:
|
|
||||||
renderSettingsOutPath:
|
|
||||||
renderSettingsUseScenePath: 0
|
|
||||||
renderSettingsHackAOIntensity: 0
|
|
||||||
renderSettingsHackAOSamples: 16
|
|
||||||
renderSettingsHackAORadius: 1
|
|
||||||
renderSettingsShowAOSettings: 0
|
|
||||||
renderSettingsShowTasks: 1
|
|
||||||
renderSettingsShowTasks2: 0
|
|
||||||
renderSettingsShowPaths: 1
|
|
||||||
renderSettingsShowNet: 1
|
|
||||||
renderSettingsOcclusionProbes: 0
|
|
||||||
renderSettingsTexelsPerMap: 0
|
|
||||||
renderSettingsTexelsColor: 1
|
|
||||||
renderSettingsTexelsMask: 1
|
|
||||||
renderSettingsTexelsDir: 1
|
|
||||||
renderSettingsShowDirWarning: 1
|
|
||||||
renderSettingsRenderDirMode: 0
|
|
||||||
renderSettingsShowCheckerSettings: 0
|
|
||||||
renderSettingsSamplesWarning: 1
|
|
||||||
renderSettingsPrefabWarning: 1
|
|
||||||
renderSettingsSplitByScene: 0
|
|
||||||
renderSettingsUVPaddingMax: 0
|
|
||||||
renderSettingsPostPacking: 1
|
|
||||||
renderSettingsHoleFilling: 0
|
|
||||||
renderSettingsBeepOnFinish: 0
|
|
||||||
renderSettingsExportTerrainAsHeightmap: 1
|
|
||||||
renderSettingsRTXMode: 0
|
|
||||||
renderSettingsLightProbeMode: 1
|
|
||||||
renderSettingsClientMode: 0
|
|
||||||
renderSettingsServerAddress: 127.0.0.1
|
|
||||||
renderSettingsUnwrapper: 0
|
|
||||||
renderSettingsDenoiserType: 100
|
|
||||||
renderSettingsExportTerrainTrees: 0
|
|
||||||
renderSettingsShowPerf: 1
|
|
||||||
renderSettingsSampleDiv: 1
|
|
||||||
renderSettingsAtlasPacker: 0
|
|
||||||
renderSettingsBatchPoints: 1
|
|
||||||
renderSettingsRTPVExport: 1
|
|
||||||
renderSettingsRTPVSceneView: 0
|
|
||||||
renderSettingsRTPVWidth: 640
|
|
||||||
renderSettingsRTPVHeight: 360
|
|
||||||
modifiedMeshPaddingArray:
|
|
||||||
modifiedMeshUnwrapperArray:
|
|
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: f4b25053f1346cc4e8e1208e07ec0360
|
|
||||||
timeCreated: 1536946135
|
|
||||||
licenseType: Store
|
|
||||||
NativeFormatImporter:
|
|
||||||
mainObjectFileID: -1
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,106 +0,0 @@
|
|||||||
Shader "Hidden/ftDilate"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
_MainTex ("Texture", 2D) = "white" {}
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
// No culling or depth
|
|
||||||
Cull Off ZWrite Off ZTest Always
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
};
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = v.uv;
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
UNITY_DECLARE_TEX2D(_MainTex);
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
uint width, height;
|
|
||||||
_MainTex.GetDimensions(width, height);
|
|
||||||
int3 center = int3(i.vertex.xy, 0);
|
|
||||||
|
|
||||||
float4 c = _MainTex.Load(center);
|
|
||||||
if (c.w > 0) return c;
|
|
||||||
|
|
||||||
uint total = 0;
|
|
||||||
float4 c2 = _MainTex.Load(center, int2(-1,-1));
|
|
||||||
if (c2.w>0) {
|
|
||||||
c += c2;
|
|
||||||
total++;
|
|
||||||
}
|
|
||||||
|
|
||||||
c2 = _MainTex.Load(center, int2(0,-1));
|
|
||||||
if (c2.w>0) {
|
|
||||||
c += c2;
|
|
||||||
total++;
|
|
||||||
}
|
|
||||||
|
|
||||||
c2 = _MainTex.Load(center, int2(1,-1));
|
|
||||||
if (c2.w>0) {
|
|
||||||
c += c2;
|
|
||||||
total++;
|
|
||||||
}
|
|
||||||
|
|
||||||
c2 = _MainTex.Load(center, int2(-1,0));
|
|
||||||
if (c2.w>0) {
|
|
||||||
c += c2;
|
|
||||||
total++;
|
|
||||||
}
|
|
||||||
|
|
||||||
c2 = _MainTex.Load(center, int2(1,0));
|
|
||||||
if (c2.w>0) {
|
|
||||||
c += c2;
|
|
||||||
total++;
|
|
||||||
}
|
|
||||||
|
|
||||||
c2 = _MainTex.Load(center, int2(-1,1));
|
|
||||||
if (c2.w>0) {
|
|
||||||
c += c2;
|
|
||||||
total++;
|
|
||||||
}
|
|
||||||
|
|
||||||
c2 = _MainTex.Load(center, int2(1,1));
|
|
||||||
if (c2.w>0) {
|
|
||||||
c += c2;
|
|
||||||
total++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (total > 0)
|
|
||||||
{
|
|
||||||
c /= total;
|
|
||||||
return float4(c.rgb, 1.0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
return float4(0,0,0,0);
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 966cd9feaf442e64b9154c34e29787e1
|
|
||||||
timeCreated: 1595076643
|
|
||||||
licenseType: Store
|
|
||||||
ShaderImporter:
|
|
||||||
defaultTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,949 +0,0 @@
|
|||||||
%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: c789d55c4f1cff34799abba03737e8f7, type: 3}
|
|
||||||
m_Name: ftGlobalStorage
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
modifiedAssetPathList:
|
|
||||||
- Assets/Bakery/examples/content/sponza/sponza.FBX
|
|
||||||
- Assets/Models/Delta_Building_Model_Old.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-02.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-01.1.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-04K.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/Monitor.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-26.4.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-11T.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-39.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-03.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-17.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-19.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-41.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-11.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-01.2.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-16.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/PC.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-62.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-10.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-05.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-01.3.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-11.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/Toilet.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-32.blend
|
|
||||||
- Assets/Models/Ceiling light CGVR.fbx
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-48.1_small.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-04.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-48.1.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-28.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-11_v2.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-08.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-47.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/Monitor_alone.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/m-13.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-24.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-08.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-63.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/Chair.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-16.1.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-54.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-09.1.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-38.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-25.blend
|
|
||||||
- Assets/Models/Furniture/Imported_Models/Indoor plant 3/Low-Poly Plant_.3ds
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-30.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-26.3.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-22.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/Kitchen_sink left.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/Kitchen_small_sink.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-04.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-51.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-12.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/EM-14.1.blend
|
|
||||||
- Assets/Models/trash_bin.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-14.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/EM-18.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-16.2.blend
|
|
||||||
- Assets/Models/Outside/StreetLamp_Small.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-15.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-26.2.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-15.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-09.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-09.2.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-70.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-07.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-31.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-05.02.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/Kitchen_sink 2.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-25.01.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-32.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/Sink.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-05.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/Sink_small.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/Counter_table.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-23.blend
|
|
||||||
- Assets/Models/Outside/BikeStop.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-27.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-10.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/EM-19.2.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-06.blend
|
|
||||||
- Assets/Models/Green_stairs.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-2.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/EM-19.1.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/Admin_EM-01.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-20.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-18.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/Tile.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-26.1.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/EM-14.2.blend
|
|
||||||
modifiedAssetPaddingHash: aaf8cc2e24c96996f437ed04b74608c8b94608c8d05634b7b4c2a693f927c1150ca3ddde97c6d890d0c124910ca3ddde09a3dddef727c115b74608c8ecc124910ba3dddeffb209cefd7d9363f727c11556f23a06da7d9363b84608c8f827c115b35634b78cdb894bbb4608c8c04dfff0f327c1157e4dfff0323b8033d74608c802b309cecec124910ca3ddde97c6d890f927c115ef37ed0400b309cebb09ecc0b45634b79f398033ea32a0cdf327c115b05634b78c67e2a875f23a069f3980330cf43a061067e2a81067e2a89d4dfff0344ffff023c5d890275031ee56f23a06ffb209ceda7d9363d7c2a693f83980335d398033323b8033f527c115907f9363fa4dfff0ad5634b7194efff004c5d89075f23a06c34608c898f23a06bb09ecc0f827c1157c3980332009ecc0fea8391419c2a693194efff0e55031eed7c2a69314f33a06d2f23a064adc894bf1f23a069f398033bb7d9363c2c4d8908c67e2a8fd7d9363
|
|
||||||
modifiedMeshList: []
|
|
||||||
modifiedMeshPaddingList:
|
|
||||||
modifiedAssets:
|
|
||||||
- meshName:
|
|
||||||
- sponza_00
|
|
||||||
- sponza_01
|
|
||||||
- sponza_03
|
|
||||||
- sponza_05
|
|
||||||
- sponza_06
|
|
||||||
- sponza_07
|
|
||||||
- sponza_08
|
|
||||||
- sponza_09
|
|
||||||
- sponza_10
|
|
||||||
- sponza_11
|
|
||||||
- sponza_12
|
|
||||||
- sponza_13
|
|
||||||
- sponza_14
|
|
||||||
- sponza_15
|
|
||||||
- sponza_16
|
|
||||||
- sponza_17
|
|
||||||
- sponza_18
|
|
||||||
- sponza_19
|
|
||||||
- sponza_20
|
|
||||||
- sponza_21
|
|
||||||
- sponza_22
|
|
||||||
- sponza_23
|
|
||||||
- sponza_24
|
|
||||||
- sponza_25
|
|
||||||
- sponza_26
|
|
||||||
- sponza_27
|
|
||||||
- sponza_28
|
|
||||||
- sponza_29
|
|
||||||
- sponza_30
|
|
||||||
- sponza_31
|
|
||||||
- sponza_32
|
|
||||||
- sponza_33
|
|
||||||
- sponza_34
|
|
||||||
- sponza_35
|
|
||||||
- sponza_36
|
|
||||||
- sponza_37
|
|
||||||
- sponza_38
|
|
||||||
- sponza_39
|
|
||||||
- sponza_40
|
|
||||||
- sponza_41
|
|
||||||
- sponza_42
|
|
||||||
- sponza_43
|
|
||||||
- sponza_44
|
|
||||||
- sponza_45
|
|
||||||
- sponza_46
|
|
||||||
- sponza_47
|
|
||||||
- sponza_48
|
|
||||||
- sponza_49
|
|
||||||
- sponza_50
|
|
||||||
- sponza_51
|
|
||||||
- sponza_52
|
|
||||||
- sponza_53
|
|
||||||
- sponza_54
|
|
||||||
- sponza_55
|
|
||||||
- sponza_56
|
|
||||||
- sponza_57
|
|
||||||
- sponza_58
|
|
||||||
- sponza_59
|
|
||||||
- sponza_60
|
|
||||||
- sponza_61
|
|
||||||
- sponza_62
|
|
||||||
- sponza_63
|
|
||||||
- sponza_64
|
|
||||||
- sponza_65
|
|
||||||
- sponza_67
|
|
||||||
- sponza_68
|
|
||||||
- sponza_69
|
|
||||||
- sponza_70
|
|
||||||
- sponza_71
|
|
||||||
- sponza_72
|
|
||||||
- sponza_73
|
|
||||||
- sponza_74
|
|
||||||
- sponza_75
|
|
||||||
- sponza_76
|
|
||||||
- sponza_77
|
|
||||||
- sponza_78
|
|
||||||
- sponza_79
|
|
||||||
- sponza_80
|
|
||||||
- sponza_81
|
|
||||||
- sponza_82
|
|
||||||
- sponza_83
|
|
||||||
- sponza_84
|
|
||||||
- sponza_85
|
|
||||||
- sponza_86
|
|
||||||
- sponza_87
|
|
||||||
- sponza_88
|
|
||||||
- sponza_89
|
|
||||||
- sponza_90
|
|
||||||
- sponza_91
|
|
||||||
- sponza_92
|
|
||||||
- sponza_93
|
|
||||||
- sponza_94
|
|
||||||
- sponza_95
|
|
||||||
- sponza_96
|
|
||||||
- sponza_97
|
|
||||||
- sponza_98
|
|
||||||
- sponza_99
|
|
||||||
- sponza_100
|
|
||||||
- sponza_101
|
|
||||||
- sponza_102
|
|
||||||
- sponza_103
|
|
||||||
- sponza_104
|
|
||||||
- sponza_105
|
|
||||||
- sponza_106
|
|
||||||
- sponza_107
|
|
||||||
- sponza_108
|
|
||||||
- sponza_109
|
|
||||||
- sponza_110
|
|
||||||
- sponza_111
|
|
||||||
- sponza_112
|
|
||||||
- sponza_113
|
|
||||||
- sponza_114
|
|
||||||
- sponza_115
|
|
||||||
- sponza_116
|
|
||||||
- sponza_117
|
|
||||||
- sponza_118
|
|
||||||
- sponza_119
|
|
||||||
- sponza_120
|
|
||||||
- sponza_121
|
|
||||||
- sponza_122
|
|
||||||
- sponza_123
|
|
||||||
- sponza_124
|
|
||||||
- sponza_125
|
|
||||||
- sponza_126
|
|
||||||
- sponza_127
|
|
||||||
- sponza_128
|
|
||||||
- sponza_129
|
|
||||||
- sponza_130
|
|
||||||
- sponza_131
|
|
||||||
- sponza_132
|
|
||||||
- sponza_133
|
|
||||||
- sponza_134
|
|
||||||
- sponza_135
|
|
||||||
- sponza_136
|
|
||||||
- sponza_137
|
|
||||||
- sponza_138
|
|
||||||
- sponza_139
|
|
||||||
- sponza_140
|
|
||||||
- sponza_141
|
|
||||||
- sponza_142
|
|
||||||
- sponza_143
|
|
||||||
- sponza_144
|
|
||||||
- sponza_145
|
|
||||||
- sponza_146
|
|
||||||
- sponza_147
|
|
||||||
- sponza_148
|
|
||||||
- sponza_149
|
|
||||||
- sponza_150
|
|
||||||
- sponza_151
|
|
||||||
- sponza_152
|
|
||||||
- sponza_153
|
|
||||||
- sponza_154
|
|
||||||
- sponza_155
|
|
||||||
- sponza_156
|
|
||||||
- sponza_157
|
|
||||||
- sponza_158
|
|
||||||
- sponza_159
|
|
||||||
- sponza_160
|
|
||||||
- sponza_161
|
|
||||||
- sponza_162
|
|
||||||
- sponza_163
|
|
||||||
- sponza_164
|
|
||||||
- sponza_165
|
|
||||||
- sponza_166
|
|
||||||
- sponza_167
|
|
||||||
- sponza_168
|
|
||||||
- sponza_169
|
|
||||||
- sponza_170
|
|
||||||
- sponza_171
|
|
||||||
- sponza_172
|
|
||||||
- sponza_173
|
|
||||||
- sponza_174
|
|
||||||
- sponza_175
|
|
||||||
- sponza_176
|
|
||||||
- sponza_177
|
|
||||||
- sponza_178
|
|
||||||
- sponza_179
|
|
||||||
- sponza_180
|
|
||||||
- sponza_181
|
|
||||||
- sponza_182
|
|
||||||
- sponza_183
|
|
||||||
- sponza_184
|
|
||||||
- sponza_185
|
|
||||||
- sponza_186
|
|
||||||
- sponza_187
|
|
||||||
- sponza_188
|
|
||||||
- sponza_189
|
|
||||||
- sponza_190
|
|
||||||
- sponza_191
|
|
||||||
- sponza_192
|
|
||||||
- sponza_193
|
|
||||||
- sponza_194
|
|
||||||
- sponza_195
|
|
||||||
- sponza_196
|
|
||||||
- sponza_197
|
|
||||||
- sponza_198
|
|
||||||
- sponza_199
|
|
||||||
- sponza_200
|
|
||||||
- sponza_201
|
|
||||||
- sponza_202
|
|
||||||
- sponza_203
|
|
||||||
- sponza_204
|
|
||||||
- sponza_205
|
|
||||||
- sponza_206
|
|
||||||
- sponza_207
|
|
||||||
- sponza_208
|
|
||||||
- sponza_209
|
|
||||||
- sponza_210
|
|
||||||
- sponza_211
|
|
||||||
- sponza_212
|
|
||||||
- sponza_213
|
|
||||||
- sponza_214
|
|
||||||
- sponza_215
|
|
||||||
- sponza_216
|
|
||||||
- sponza_217
|
|
||||||
- sponza_218
|
|
||||||
- sponza_219
|
|
||||||
- sponza_220
|
|
||||||
- sponza_221
|
|
||||||
- sponza_222
|
|
||||||
- sponza_223
|
|
||||||
- sponza_224
|
|
||||||
- sponza_225
|
|
||||||
- sponza_226
|
|
||||||
- sponza_227
|
|
||||||
- sponza_228
|
|
||||||
- sponza_229
|
|
||||||
- sponza_230
|
|
||||||
- sponza_231
|
|
||||||
- sponza_232
|
|
||||||
- sponza_233
|
|
||||||
- sponza_234
|
|
||||||
- sponza_235
|
|
||||||
- sponza_236
|
|
||||||
- sponza_237
|
|
||||||
- sponza_238
|
|
||||||
- sponza_239
|
|
||||||
- sponza_240
|
|
||||||
- sponza_241
|
|
||||||
- sponza_242
|
|
||||||
- sponza_243
|
|
||||||
- sponza_244
|
|
||||||
- sponza_245
|
|
||||||
- sponza_246
|
|
||||||
- sponza_247
|
|
||||||
- sponza_248
|
|
||||||
- sponza_249
|
|
||||||
- sponza_250
|
|
||||||
- sponza_251
|
|
||||||
- sponza_252
|
|
||||||
- sponza_253
|
|
||||||
- sponza_254
|
|
||||||
- sponza_255
|
|
||||||
- sponza_256
|
|
||||||
- sponza_257
|
|
||||||
- sponza_259
|
|
||||||
- sponza_260
|
|
||||||
- sponza_261
|
|
||||||
- sponza_262
|
|
||||||
- sponza_263
|
|
||||||
- sponza_264
|
|
||||||
- sponza_265
|
|
||||||
- sponza_266
|
|
||||||
- sponza_267
|
|
||||||
- sponza_268
|
|
||||||
- sponza_269
|
|
||||||
- sponza_270
|
|
||||||
- sponza_271
|
|
||||||
- sponza_272
|
|
||||||
- sponza_273
|
|
||||||
- sponza_274
|
|
||||||
- sponza_275
|
|
||||||
- sponza_276
|
|
||||||
- sponza_277
|
|
||||||
- sponza_278
|
|
||||||
- sponza_279
|
|
||||||
- sponza_280
|
|
||||||
- sponza_281
|
|
||||||
- sponza_282
|
|
||||||
- sponza_283
|
|
||||||
- sponza_284
|
|
||||||
- sponza_285
|
|
||||||
- sponza_286
|
|
||||||
- sponza_287
|
|
||||||
- sponza_288
|
|
||||||
- sponza_289
|
|
||||||
- sponza_290
|
|
||||||
- sponza_291
|
|
||||||
- sponza_292
|
|
||||||
- sponza_293
|
|
||||||
- sponza_294
|
|
||||||
- sponza_295
|
|
||||||
- sponza_296
|
|
||||||
- sponza_297
|
|
||||||
- sponza_298
|
|
||||||
- sponza_299
|
|
||||||
- sponza_300
|
|
||||||
- sponza_301
|
|
||||||
- sponza_302
|
|
||||||
- sponza_303
|
|
||||||
- sponza_304
|
|
||||||
- sponza_305
|
|
||||||
- sponza_306
|
|
||||||
- sponza_307
|
|
||||||
- sponza_308
|
|
||||||
- sponza_309
|
|
||||||
- sponza_310
|
|
||||||
- sponza_311
|
|
||||||
- sponza_312
|
|
||||||
- sponza_313
|
|
||||||
- sponza_314
|
|
||||||
- sponza_315
|
|
||||||
- sponza_316
|
|
||||||
- sponza_317
|
|
||||||
- sponza_318
|
|
||||||
- sponza_319
|
|
||||||
- sponza_320
|
|
||||||
- sponza_321
|
|
||||||
- sponza_322
|
|
||||||
- sponza_323
|
|
||||||
- sponza_324
|
|
||||||
- sponza_325
|
|
||||||
- sponza_326
|
|
||||||
- sponza_327
|
|
||||||
- sponza_328
|
|
||||||
- sponza_329
|
|
||||||
- sponza_330
|
|
||||||
- sponza_331
|
|
||||||
- sponza_332
|
|
||||||
- sponza_333
|
|
||||||
- sponza_334
|
|
||||||
- sponza_335
|
|
||||||
- sponza_336
|
|
||||||
- sponza_337
|
|
||||||
- sponza_338
|
|
||||||
- sponza_339
|
|
||||||
- sponza_340
|
|
||||||
- sponza_341
|
|
||||||
- sponza_342
|
|
||||||
- sponza_343
|
|
||||||
- sponza_344
|
|
||||||
- sponza_345
|
|
||||||
- sponza_346
|
|
||||||
- sponza_347
|
|
||||||
- sponza_348
|
|
||||||
- sponza_349
|
|
||||||
- sponza_350
|
|
||||||
- sponza_351
|
|
||||||
- sponza_352
|
|
||||||
- sponza_353
|
|
||||||
- sponza_354
|
|
||||||
- sponza_355
|
|
||||||
- sponza_356
|
|
||||||
- sponza_357
|
|
||||||
- sponza_358
|
|
||||||
- sponza_359
|
|
||||||
- sponza_360
|
|
||||||
- sponza_361
|
|
||||||
- sponza_362
|
|
||||||
- sponza_363
|
|
||||||
- sponza_364
|
|
||||||
- sponza_365
|
|
||||||
- sponza_366
|
|
||||||
- sponza_367
|
|
||||||
- sponza_368
|
|
||||||
- sponza_369
|
|
||||||
- sponza_370
|
|
||||||
- sponza_371
|
|
||||||
- sponza_372
|
|
||||||
- sponza_373
|
|
||||||
- sponza_374
|
|
||||||
- sponza_375
|
|
||||||
- sponza_376
|
|
||||||
- sponza_377
|
|
||||||
- sponza_378
|
|
||||||
- sponza_381
|
|
||||||
padding: 2e000000460000002a000000110000000e0000000c0000000400000033000000330000003300000033000000330000003300000033000000330000000a00000007000000060000002b0000002b00000011000000140000001400000014000000140000002a0000001d000000320000003200000032000000320000002a000000080000000d0000000500000087000000fa00000087000000fa00000087000000fa00000087000000fa00000087000000fb00000087000000fb00000087000000fb00000087000000fb00000087000000fb00000051000000510000005100000051000000510000005100000051000000510000005100000051000000510000000c00000006000000060000002700000028000000390000002b000000150000002700000000010000ba0000009b0000009b000000b70000009d000000b7000000b7000000b70000009b000000b70000009d000000b7000000b7000000b70000009b0000009b0000009b00000083000000ba00000000010000ba0000009b0000009b000000b70000009d000000b7000000b7000000b70000009b000000b70000009d000000b7000000b7000000b70000009b0000009b0000009b00000083000000000100002700000006000000270000002700000027000000270000002d0000001000000010000000230000006a000000000100006a000000000100006a000000000100006a000000000100001e0000002c000000210000005c000000000100005c000000000100005c000000000100005c000000000100001a00000026000000210000005c000000000100005c000000000100005c000000000100005c000000000100001a00000026000000210000005c000000000100005c000000000100005c000000000100005c000000000100001a00000026000000210000005c000000000100005c000000000100005c000000000100005c000000000100001a00000026000000210000005c000000000100005c000000000100005c000000000100005c000000000100001a00000026000000210000005c000000000100005c000000000100005c000000000100005c000000000100001a00000026000000210000005c000000000100005c000000000100005c000000000100005c000000000100001a00000026000000210000005c000000000100005c000000000100005c000000000100005c000000000100001a00000026000000210000005c000000000100005c000000000100005c000000000100005c000000000100001a00000026000000210000005c000000000100005c000000000100005c000000000100005c000000000100001a00000026000000230000006a000000000100006a000000000100006a000000000100006a000000000100001e0000002c000000630000004300000000010000000100004300000000010000430000000001000043000000430000009400000094000000430000009400000043000000940000004300000024000000270000004600000030000000360000002d000000360000001d0000001d0000001d0000001d0000001d0000001d0000001d0000001d00000000010000ad0000000001000000010000ad0000000001000000010000ad0000000001000000010000ad0000000001000000010000ad0000000001000000010000ad0000000001000000010000ad0000000001000000010000ad0000000001000000010000ad0000000001000000010000ad000000000100001b0000001b0000001b0000001b0000001b0000001b0000001b0000001b0000001b0000001b000000000100000001000000010000000100008c00000000010000000100000001000000010000000100000001000000010000000100008c00000000010000000100000001000000010000000100000001000000010000000100008c00000000010000000100000001000000010000000100000001000000010000000100008c000000000100000001000000010000000100004600000046000000460000004900000049000000490000004900000024000000240000002400000024000000220000001800000004000000
|
|
||||||
unwrapper:
|
|
||||||
- meshName:
|
|
||||||
- VU.1.01-2
|
|
||||||
- VU.1.01-1
|
|
||||||
- VU.1.15-1
|
|
||||||
- VU.013
|
|
||||||
- VU.008
|
|
||||||
padding: 390000003900000034000000310000002d000000
|
|
||||||
unwrapper: 0000000000000000000000000000000000000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 80000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Tool
|
|
||||||
padding: 72000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Rulltool
|
|
||||||
padding: 74000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: ea000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 1d000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cylinder
|
|
||||||
padding: 67000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 8e000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 54000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Rulltool
|
|
||||||
padding: 97000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 8e000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 93000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 65000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Tool
|
|
||||||
padding: 72000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 00010000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 8d000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: a7000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Kapp
|
|
||||||
padding: 35000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 65000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Tool
|
|
||||||
padding: 46000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 3f000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 73000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 66000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Ceiling light
|
|
||||||
padding: 84000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 4c000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Rulltool
|
|
||||||
padding: 6e000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 3a000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 69000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 4e000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 55000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cylinder
|
|
||||||
padding: d9000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: a2000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 9d000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 8e000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 54000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cylinder
|
|
||||||
padding: 67000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Rulltool
|
|
||||||
padding: 7b000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: a0000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 16000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 85000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 37000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
- Chair
|
|
||||||
padding: 3a0000003a000000
|
|
||||||
unwrapper: 0100000001000000
|
|
||||||
- meshName:
|
|
||||||
- Low-Poly Pla
|
|
||||||
padding: 69000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Circle
|
|
||||||
padding: 89000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 15000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 3c000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 37000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 5a000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 3d000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 3d000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 44000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Circle
|
|
||||||
padding: 62000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Garbage_Bin
|
|
||||||
padding: 2c000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Sphere
|
|
||||||
padding: 4d000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube.001
|
|
||||||
padding: 46000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: a7000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cylinder
|
|
||||||
padding: 3f000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Sofa
|
|
||||||
padding: 13000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 19000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 4b000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 55000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 6b000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 53000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 26000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 86000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 1c000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 36000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 3c000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 76000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 32000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 16000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 66000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 41000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube.001
|
|
||||||
padding: 48000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube.001
|
|
||||||
- Cube.002
|
|
||||||
- Cube.007
|
|
||||||
- Cube.005
|
|
||||||
- Cube.003
|
|
||||||
- Cube.004
|
|
||||||
- Cube
|
|
||||||
- Cube.006
|
|
||||||
padding: b0000000b0000000b0000000b0000000b0000000b0000000b0000000b0000000
|
|
||||||
unwrapper: 0100000001000000010000000100000001000000010000000100000001000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 4f000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 1c000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 11000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 13000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Stairs
|
|
||||||
padding: 0a000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 1e000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 10000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 14000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Shelves
|
|
||||||
padding: 37000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 49000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 4a000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Cube
|
|
||||||
padding: 15000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
- meshName:
|
|
||||||
- Circle
|
|
||||||
padding: 35000000
|
|
||||||
unwrapper: 01000000
|
|
||||||
assetList:
|
|
||||||
- Assets/Bakery/examples/content/sponza/bush.FBX
|
|
||||||
- Assets/Bakery/examples/content/floor_lamp.FBX
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-09.1.blend
|
|
||||||
- Assets/Models/Ceiling light CGVR.fbx
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-09.2.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-16.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-23.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-01.1.blend
|
|
||||||
- Assets/Oculus/VR/Meshes/HandTracking/OculusHand_L.fbx
|
|
||||||
- Assets/Oculus/VR/Meshes/HandTracking/OculusHand_R.fbx
|
|
||||||
uvOverlapAssetList: 00000000ffffffff0000000001010000000000000101000001010000010100000000000000000000
|
|
||||||
xatlasWarningShown: 1
|
|
||||||
foundCompatibleSetup: 1
|
|
||||||
gpuName: NVIDIA GeForce GTX 1660
|
|
||||||
runsNonRTX: 1
|
|
||||||
runsOptix5: 1
|
|
||||||
runsOptix6: 1
|
|
||||||
runsOptix7: 1
|
|
||||||
runsOIDN: 1
|
|
||||||
alwaysEnableRTX: 0
|
|
||||||
checkerPreviewOn: 0
|
|
||||||
rtSceneViewPreviewOn: 0
|
|
||||||
renderSettingsBounces: 5
|
|
||||||
renderSettingsGISamples: 16
|
|
||||||
renderSettingsGIBackFaceWeight: 0
|
|
||||||
renderSettingsTileSize: 512
|
|
||||||
renderSettingsPriority: 2
|
|
||||||
renderSettingsTexelsPerUnit: 20
|
|
||||||
renderSettingsForceRefresh: 1
|
|
||||||
renderSettingsForceRebuildGeometry: 1
|
|
||||||
renderSettingsPerformRendering: 1
|
|
||||||
renderSettingsUserRenderMode: 0
|
|
||||||
renderSettingsDistanceShadowmask: 1
|
|
||||||
renderSettingsSettingsMode: 2
|
|
||||||
renderSettingsFixSeams: 1
|
|
||||||
renderSettingsDenoise: 1
|
|
||||||
renderSettingsDenoise2x: 0
|
|
||||||
renderSettingsEncode: 1
|
|
||||||
renderSettingsEncodeMode: 0
|
|
||||||
renderSettingsOverwriteWarning: 1
|
|
||||||
renderSettingsAutoAtlas: 1
|
|
||||||
renderSettingsUnwrapUVs: 1
|
|
||||||
renderSettingsForceDisableUnwrapUVs: 0
|
|
||||||
renderSettingsMaxAutoResolution: 4096
|
|
||||||
renderSettingsMinAutoResolution: 16
|
|
||||||
renderSettingsUnloadScenes: 1
|
|
||||||
renderSettingsAdjustSamples: 1
|
|
||||||
renderSettingsGILODMode: 1
|
|
||||||
renderSettingsGILODModeEnabled: 1
|
|
||||||
renderSettingsCheckOverlaps: 0
|
|
||||||
renderSettingsSkipOutOfBoundsUVs: 1
|
|
||||||
renderSettingsHackEmissiveBoost: 1
|
|
||||||
renderSettingsHackIndirectBoost: 1
|
|
||||||
renderSettingsTempPath:
|
|
||||||
renderSettingsOutPath: BakeryLightmaps
|
|
||||||
renderSettingsUseScenePath: 0
|
|
||||||
renderSettingsHackAOIntensity: 0
|
|
||||||
renderSettingsHackAOSamples: 16
|
|
||||||
renderSettingsHackAORadius: 1
|
|
||||||
renderSettingsShowAOSettings: 1
|
|
||||||
renderSettingsShowTasks: 1
|
|
||||||
renderSettingsShowTasks2: 1
|
|
||||||
renderSettingsShowPaths: 1
|
|
||||||
renderSettingsShowNet: 1
|
|
||||||
renderSettingsOcclusionProbes: 1
|
|
||||||
renderSettingsTexelsPerMap: 1
|
|
||||||
renderSettingsTexelsColor: 1
|
|
||||||
renderSettingsTexelsMask: 1
|
|
||||||
renderSettingsTexelsDir: 1
|
|
||||||
renderSettingsShowDirWarning: 1
|
|
||||||
renderSettingsRenderDirMode: 0
|
|
||||||
renderSettingsShowCheckerSettings: 0
|
|
||||||
renderSettingsSamplesWarning: 1
|
|
||||||
renderSettingsPrefabWarning: 1
|
|
||||||
renderSettingsSplitByScene: 0
|
|
||||||
renderSettingsUVPaddingMax: 0
|
|
||||||
renderSettingsPostPacking: 1
|
|
||||||
renderSettingsHoleFilling: 1
|
|
||||||
renderSettingsBeepOnFinish: 0
|
|
||||||
renderSettingsExportTerrainAsHeightmap: 0
|
|
||||||
renderSettingsRTXMode: 0
|
|
||||||
renderSettingsLightProbeMode: 1
|
|
||||||
renderSettingsClientMode: 0
|
|
||||||
renderSettingsServerAddress: 127.0.0.1
|
|
||||||
renderSettingsUnwrapper: 1
|
|
||||||
renderSettingsDenoiserType: 5
|
|
||||||
renderSettingsExportTerrainTrees: 0
|
|
||||||
renderSettingsShowPerf: 1
|
|
||||||
renderSettingsSampleDiv: 1
|
|
||||||
renderSettingsAtlasPacker: 1
|
|
||||||
renderSettingsBatchPoints: 1
|
|
||||||
renderSettingsRTPVExport: 1
|
|
||||||
renderSettingsRTPVSceneView: 0
|
|
||||||
renderSettingsRTPVWidth: 640
|
|
||||||
renderSettingsRTPVHeight: 360
|
|
||||||
modifiedMeshPaddingArray: 3a0000003a000000
|
|
||||||
modifiedMeshUnwrapperArray: 0100000001000000
|
|
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 8f263a97448c55c4e82049cc6cf970c3
|
|
||||||
timeCreated: 1536946135
|
|
||||||
licenseType: Store
|
|
||||||
NativeFormatImporter:
|
|
||||||
mainObjectFileID: -1
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,397 +0,0 @@
|
|||||||
using UnityEngine;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
using UnityEditor;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
public class ftGlobalStorage : ScriptableObject
|
|
||||||
{
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
|
|
||||||
[System.Serializable]
|
|
||||||
public struct AdjustedMesh
|
|
||||||
{
|
|
||||||
//[SerializeField]
|
|
||||||
//public string assetPath;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public List<string> meshName;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public List<int> padding;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public List<int> unwrapper;
|
|
||||||
};
|
|
||||||
|
|
||||||
[System.Serializable]
|
|
||||||
public enum Unwrapper
|
|
||||||
{
|
|
||||||
Default,
|
|
||||||
xatlas
|
|
||||||
};
|
|
||||||
|
|
||||||
[System.Serializable]
|
|
||||||
public enum AtlasPacker
|
|
||||||
{
|
|
||||||
Default,
|
|
||||||
xatlas
|
|
||||||
}
|
|
||||||
|
|
||||||
[System.Serializable]
|
|
||||||
public enum DenoiserType
|
|
||||||
{
|
|
||||||
Optix5 = 5, // "Legacy denoiser"
|
|
||||||
Optix6 = 6, // Default denoiser
|
|
||||||
Optix7 = 7, // New denoiser
|
|
||||||
OpenImageDenoise = 100
|
|
||||||
};
|
|
||||||
|
|
||||||
// UV adjustment
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public List<string> modifiedAssetPathList = new List<string>();
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public List<int> modifiedAssetPaddingHash = new List<int>();
|
|
||||||
|
|
||||||
// Legacy
|
|
||||||
[SerializeField]
|
|
||||||
public List<Mesh> modifiedMeshList = new List<Mesh>();
|
|
||||||
[SerializeField]
|
|
||||||
public List<int> modifiedMeshPaddingList = new List<int>();
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public List<AdjustedMesh> modifiedAssets = new List<AdjustedMesh>();
|
|
||||||
|
|
||||||
// UV overlap marks
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public List<string> assetList = new List<string>();
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public List<int> uvOverlapAssetList = new List<int>(); // -1 = no UV1, 0 = no overlap, 1 = overlap
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public bool xatlasWarningShown = false;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public bool foundCompatibleSetup = false;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public string gpuName = "";
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public bool runsNonRTX = true;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public bool runsOptix5 = true;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public bool runsOptix6 = true;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public bool runsOptix7 = true;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public bool runsOIDN = true;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public bool alwaysEnableRTX = false;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public bool checkerPreviewOn = false;
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public bool rtSceneViewPreviewOn = false;
|
|
||||||
|
|
||||||
// Defaults
|
|
||||||
[SerializeField]
|
|
||||||
public int renderSettingsBounces = 5;
|
|
||||||
[SerializeField]
|
|
||||||
public int renderSettingsGISamples = 16;
|
|
||||||
[SerializeField]
|
|
||||||
public float renderSettingsGIBackFaceWeight = 0;
|
|
||||||
[SerializeField]
|
|
||||||
public int renderSettingsTileSize = 512;
|
|
||||||
[SerializeField]
|
|
||||||
public float renderSettingsPriority = 2;
|
|
||||||
[SerializeField]
|
|
||||||
public float renderSettingsTexelsPerUnit = 20;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsForceRefresh = true;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsForceRebuildGeometry = true;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsPerformRendering = true;
|
|
||||||
[SerializeField]
|
|
||||||
public int renderSettingsUserRenderMode = 0;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsDistanceShadowmask = false;
|
|
||||||
[SerializeField]
|
|
||||||
public int renderSettingsSettingsMode = 0;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsFixSeams = true;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsDenoise = true;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsDenoise2x = false;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsEncode = true;
|
|
||||||
[SerializeField]
|
|
||||||
public int renderSettingsEncodeMode = 0;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsOverwriteWarning = false;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsAutoAtlas = true;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsUnwrapUVs = true;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsForceDisableUnwrapUVs = false;
|
|
||||||
[SerializeField]
|
|
||||||
public int renderSettingsMaxAutoResolution = 4096;
|
|
||||||
[SerializeField]
|
|
||||||
public int renderSettingsMinAutoResolution = 16;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsUnloadScenes = true;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsAdjustSamples = true;
|
|
||||||
[SerializeField]
|
|
||||||
public int renderSettingsGILODMode = 0;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsGILODModeEnabled = true;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsCheckOverlaps = false;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsSkipOutOfBoundsUVs = true;
|
|
||||||
[SerializeField]
|
|
||||||
public float renderSettingsHackEmissiveBoost = 1;
|
|
||||||
[SerializeField]
|
|
||||||
public float renderSettingsHackIndirectBoost = 1;
|
|
||||||
[SerializeField]
|
|
||||||
public string renderSettingsTempPath = "";
|
|
||||||
[SerializeField]
|
|
||||||
public string renderSettingsOutPath = "";
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsUseScenePath = false;
|
|
||||||
[SerializeField]
|
|
||||||
public float renderSettingsHackAOIntensity = 0;
|
|
||||||
[SerializeField]
|
|
||||||
public int renderSettingsHackAOSamples = 16;
|
|
||||||
[SerializeField]
|
|
||||||
public float renderSettingsHackAORadius = 1;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsShowAOSettings = false;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsShowTasks = true;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsShowTasks2 = false;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsShowPaths = true;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsShowNet = true;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsOcclusionProbes = false;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsTexelsPerMap = false;
|
|
||||||
[SerializeField]
|
|
||||||
public float renderSettingsTexelsColor = 1;
|
|
||||||
[SerializeField]
|
|
||||||
public float renderSettingsTexelsMask = 1;
|
|
||||||
[SerializeField]
|
|
||||||
public float renderSettingsTexelsDir = 1;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsShowDirWarning = true;
|
|
||||||
[SerializeField]
|
|
||||||
public int renderSettingsRenderDirMode = 0;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsShowCheckerSettings = false;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsSamplesWarning = true;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsPrefabWarning = true;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsSplitByScene = false;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsUVPaddingMax = false;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsPostPacking = true;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsHoleFilling = false;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsBeepOnFinish = false;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsExportTerrainAsHeightmap = true;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsRTXMode = false;
|
|
||||||
[SerializeField]
|
|
||||||
public int renderSettingsLightProbeMode = 1;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsClientMode = false;
|
|
||||||
[SerializeField]
|
|
||||||
public string renderSettingsServerAddress = "127.0.0.1";
|
|
||||||
[SerializeField]
|
|
||||||
public int renderSettingsUnwrapper = 0;
|
|
||||||
[SerializeField]
|
|
||||||
public int renderSettingsDenoiserType = (int)DenoiserType.OpenImageDenoise;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsExportTerrainTrees = false;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsShowPerf = true;
|
|
||||||
[SerializeField]
|
|
||||||
public int renderSettingsSampleDiv = 1;
|
|
||||||
//[SerializeField]
|
|
||||||
//public bool renderSettingsLegacyDenoiser = false;
|
|
||||||
[SerializeField]
|
|
||||||
public AtlasPacker renderSettingsAtlasPacker = AtlasPacker.Default;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsBatchPoints = true;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsRTPVExport = true;
|
|
||||||
[SerializeField]
|
|
||||||
public bool renderSettingsRTPVSceneView = false;
|
|
||||||
[SerializeField]
|
|
||||||
public int renderSettingsRTPVWidth = 640;
|
|
||||||
[SerializeField]
|
|
||||||
public int renderSettingsRTPVHeight = 360;
|
|
||||||
|
|
||||||
// Temp
|
|
||||||
|
|
||||||
public Dictionary<string, int> modifiedMeshMap;
|
|
||||||
//public string modifiedMeshPaddingMapAssetName;
|
|
||||||
public List<int> modifiedMeshPaddingArray;
|
|
||||||
public List<int> modifiedMeshUnwrapperArray;
|
|
||||||
|
|
||||||
public void InitModifiedMeshMap(string assetPath) {
|
|
||||||
|
|
||||||
modifiedMeshMap = new Dictionary<string, int>();
|
|
||||||
|
|
||||||
var index = modifiedAssetPathList.IndexOf(assetPath);
|
|
||||||
if (index < 0) return;
|
|
||||||
var m = modifiedAssets[index];
|
|
||||||
for(int j=0; j<m.meshName.Count; j++)
|
|
||||||
{
|
|
||||||
modifiedMeshMap[m.meshName[j]] = j;//m.padding[j];
|
|
||||||
}
|
|
||||||
|
|
||||||
modifiedMeshPaddingArray = m.padding;
|
|
||||||
modifiedMeshUnwrapperArray = m.unwrapper;
|
|
||||||
|
|
||||||
//modifiedMeshPaddingMapAssetName = assetPath;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ConvertFromLegacy()
|
|
||||||
{
|
|
||||||
for(int a=0; a<modifiedAssetPathList.Count; a++)
|
|
||||||
{
|
|
||||||
while(modifiedAssets.Count <= a)
|
|
||||||
{
|
|
||||||
var str = new AdjustedMesh();
|
|
||||||
str.meshName = new List<string>();
|
|
||||||
str.padding = new List<int>();
|
|
||||||
modifiedAssets.Add(str);
|
|
||||||
}
|
|
||||||
var assetPath = modifiedAssetPathList[a];
|
|
||||||
for(int i=0; i<modifiedMeshList.Count; i++) {
|
|
||||||
var m = modifiedMeshList[i];
|
|
||||||
if (m == null) continue;
|
|
||||||
var mpath = AssetDatabase.GetAssetPath(m);
|
|
||||||
if (mpath != assetPath) continue;
|
|
||||||
|
|
||||||
modifiedAssets[a].meshName.Add(m.name);
|
|
||||||
modifiedAssets[a].padding.Add(modifiedMeshPaddingList[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
modifiedMeshList = new List<Mesh>();
|
|
||||||
modifiedMeshPaddingList = new List<int>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public int CalculatePaddingHash(int id)
|
|
||||||
{
|
|
||||||
string s = "";
|
|
||||||
var list = modifiedAssets[id].padding;
|
|
||||||
for(int i=0; i<list.Count; i++) s += list[i]+"_";
|
|
||||||
return s.GetHashCode();
|
|
||||||
}
|
|
||||||
|
|
||||||
#if UNITY_2017_1_OR_NEWER
|
|
||||||
public void SyncModifiedAsset(int index)
|
|
||||||
{
|
|
||||||
var importer = AssetImporter.GetAtPath(modifiedAssetPathList[index]) as ModelImporter;
|
|
||||||
if (importer == null)
|
|
||||||
{
|
|
||||||
Debug.LogError("Can't get importer for " + modifiedAssetPathList[index]);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var data = modifiedAssets[index];
|
|
||||||
var str = JsonUtility.ToJson(data);
|
|
||||||
var props = importer.extraUserProperties;
|
|
||||||
|
|
||||||
// check if Bakery properties already present
|
|
||||||
int propID = -1;
|
|
||||||
for(int i=0; i<props.Length; i++)
|
|
||||||
{
|
|
||||||
if (props[i].Substring(0,7) == "#BAKERY")
|
|
||||||
{
|
|
||||||
propID = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (propID < 0)
|
|
||||||
{
|
|
||||||
// keep existing properties
|
|
||||||
var newProps = new string[props.Length + 1];
|
|
||||||
for(int i=0; i<props.Length; i++) newProps[i] = props[i];
|
|
||||||
props = newProps;
|
|
||||||
propID = props.Length - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
props[propID] = "#BAKERY" + str;
|
|
||||||
|
|
||||||
importer.extraUserProperties = props;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
public void ClearAssetModifications(int index)
|
|
||||||
{
|
|
||||||
var importer = AssetImporter.GetAtPath(modifiedAssetPathList[index]) as ModelImporter;
|
|
||||||
if (importer == null)
|
|
||||||
{
|
|
||||||
Debug.LogError("Can't get importer for " + modifiedAssetPathList[index]);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
modifiedAssetPathList.RemoveAt(index);
|
|
||||||
modifiedAssets.RemoveAt(index);
|
|
||||||
modifiedAssetPaddingHash.RemoveAt(index);
|
|
||||||
EditorUtility.SetDirty(this);
|
|
||||||
|
|
||||||
#if UNITY_2017_1_OR_NEWER
|
|
||||||
var props = importer.extraUserProperties;
|
|
||||||
if (props == null)
|
|
||||||
{
|
|
||||||
Debug.LogError("extraUserProperties is null");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var newProps = new List<string>();
|
|
||||||
for(int i=0; i<props.Length; i++)
|
|
||||||
{
|
|
||||||
var prop = props[i];
|
|
||||||
if (prop.Substring(0,7) != "#BAKERY")
|
|
||||||
{
|
|
||||||
newProps.Add(prop);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
importer.extraUserProperties = newProps.ToArray();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
importer.SaveAndReimport();
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: c789d55c4f1cff34799abba03737e8f7
|
|
||||||
timeCreated: 1531245591
|
|
||||||
licenseType: Store
|
|
||||||
MonoImporter:
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,50 +0,0 @@
|
|||||||
Shader "Bakery/Light"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
_Color ("Main Color", Color) = (1,1,1,1)
|
|
||||||
intensity ("intensity", Float) = 1.0
|
|
||||||
_MainTex ("Texture", 2D) = "white" {}
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "RenderType"="Opaque" }
|
|
||||||
LOD 100
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float2 texCoords : TEXCOORD0;
|
|
||||||
UNITY_VERTEX_OUTPUT_STEREO
|
|
||||||
};
|
|
||||||
|
|
||||||
float4 _Color;
|
|
||||||
float intensity;
|
|
||||||
sampler2D _MainTex;
|
|
||||||
|
|
||||||
v2f vert (appdata_full v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
UNITY_SETUP_INSTANCE_ID(v);
|
|
||||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.texCoords = v.texcoord;
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
return _Color * intensity * tex2D(_MainTex, i.texCoords);
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 44078aff4de957844a86ead7ad169295
|
|
||||||
timeCreated: 1496604962
|
|
||||||
licenseType: Store
|
|
||||||
ShaderImporter:
|
|
||||||
defaultTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,900 +0,0 @@
|
|||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
// Disable 'obsolete' warnings
|
|
||||||
#pragma warning disable 0618
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
using UnityEditor;
|
|
||||||
using UnityEditor.SceneManagement;
|
|
||||||
using System.Reflection;
|
|
||||||
using System.Runtime.CompilerServices;
|
|
||||||
using System.IO;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
using UnityEngine.SceneManagement;
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
[InitializeOnLoad]
|
|
||||||
#endif
|
|
||||||
public class ftLightmaps {
|
|
||||||
|
|
||||||
struct LightmapAdditionalData
|
|
||||||
{
|
|
||||||
public Texture2D rnm0, rnm1, rnm2;
|
|
||||||
public int mode;
|
|
||||||
};
|
|
||||||
|
|
||||||
static List<int> lightmapRefCount;
|
|
||||||
static List<LightmapAdditionalData> globalMapsAdditional;
|
|
||||||
static int directionalMode; // -1 undefined, 0 off, 1 on
|
|
||||||
//static List<ftLightmapsStorage> loadedStorages;
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
public static bool mustReloadRenderSettings = false;
|
|
||||||
static ftGlobalStorage gstorage;
|
|
||||||
static ftLocalStorage lstorage;
|
|
||||||
static bool editorUpdateCalled = false;
|
|
||||||
|
|
||||||
public static string _bakeryRuntimePath = "";
|
|
||||||
public static string _bakeryEditorPath = "";
|
|
||||||
public static string GetRuntimePath()
|
|
||||||
{
|
|
||||||
if (_bakeryRuntimePath.Length == 0)
|
|
||||||
{
|
|
||||||
// Try default path
|
|
||||||
// (start with AssetDatabase assuming it's faster than GetFiles)
|
|
||||||
var a = AssetDatabase.LoadAssetAtPath("Assets/Bakery/ftDefaultAreaLightMat.mat", typeof(Texture2D)) as Texture2D;
|
|
||||||
if (a == null)
|
|
||||||
{
|
|
||||||
// Find elsewhere
|
|
||||||
var assetGUIDs = AssetDatabase.FindAssets("ftDefaultAreaLightMat", null);
|
|
||||||
if (assetGUIDs.Length == 0)
|
|
||||||
{
|
|
||||||
// No extra data present - find the script at least
|
|
||||||
var res = Directory.GetFiles(Application.dataPath, "ftLightmaps.cs", SearchOption.AllDirectories);
|
|
||||||
if (res.Length == 0)
|
|
||||||
{
|
|
||||||
Debug.LogError("Can't locate Bakery folder");
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
return "Assets" + res[0].Replace("ftLightmaps.cs", "").Replace("\\", "/").Replace(Application.dataPath, "");
|
|
||||||
}
|
|
||||||
if (assetGUIDs.Length > 1)
|
|
||||||
{
|
|
||||||
Debug.LogError("ftDefaultAreaLightMat was found in more than one folder. Do you have multiple installations of Bakery?");
|
|
||||||
}
|
|
||||||
var guid = assetGUIDs[0];
|
|
||||||
_bakeryRuntimePath = System.IO.Path.GetDirectoryName(AssetDatabase.GUIDToAssetPath(guid)) + "/";
|
|
||||||
return _bakeryRuntimePath;
|
|
||||||
}
|
|
||||||
_bakeryRuntimePath = "Assets/Bakery/";
|
|
||||||
}
|
|
||||||
return _bakeryRuntimePath;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string GetEditorPath()
|
|
||||||
{
|
|
||||||
if (_bakeryEditorPath.Length == 0)
|
|
||||||
{
|
|
||||||
// Try default path
|
|
||||||
var a = AssetDatabase.LoadAssetAtPath("Assets/Editor/x64/Bakery/NormalsFittingTexture_dds", typeof(Object));
|
|
||||||
if (a == null)
|
|
||||||
{
|
|
||||||
// Find elsewhere
|
|
||||||
var assetGUIDs = AssetDatabase.FindAssets("NormalsFittingTexture_dds", null);
|
|
||||||
if (assetGUIDs.Length == 0)
|
|
||||||
{
|
|
||||||
// No extra data present - find ftModelPostProcessor at least (minimum required editor script)
|
|
||||||
var res = Directory.GetFiles(Application.dataPath, "ftModelPostProcessor.cs", SearchOption.AllDirectories);
|
|
||||||
if (res.Length == 0)
|
|
||||||
{
|
|
||||||
Debug.LogError("Can't locate Bakery folder");
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
return "Assets" + res[0].Replace("ftModelPostProcessor.cs", "").Replace("\\", "/").Replace(Application.dataPath, "");
|
|
||||||
}
|
|
||||||
if (assetGUIDs.Length > 1)
|
|
||||||
{
|
|
||||||
Debug.LogError("NormalsFittingTexture_dds was found in more than one folder. Do you have multiple installations of Bakery?");
|
|
||||||
}
|
|
||||||
var guid = assetGUIDs[0];
|
|
||||||
_bakeryEditorPath = System.IO.Path.GetDirectoryName(AssetDatabase.GUIDToAssetPath(guid)) + "/";
|
|
||||||
return _bakeryEditorPath;
|
|
||||||
}
|
|
||||||
_bakeryEditorPath = "Assets/Editor/x64/Bakery/";
|
|
||||||
}
|
|
||||||
return _bakeryEditorPath;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static ftGlobalStorage GetGlobalStorage()
|
|
||||||
{
|
|
||||||
if (gstorage != null) return gstorage;
|
|
||||||
var bakeryRuntimePath = GetRuntimePath();
|
|
||||||
gstorage = AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "ftGlobalStorage.asset", typeof(ftGlobalStorage)) as ftGlobalStorage;
|
|
||||||
if (gstorage == null && editorUpdateCalled) // if editorUpdateCalled==false, it may be not imported yet
|
|
||||||
{
|
|
||||||
var gstorageDefault = AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "ftDefaultGlobalStorage.asset", typeof(ftGlobalStorage)) as ftGlobalStorage;
|
|
||||||
|
|
||||||
if (gstorageDefault != null)
|
|
||||||
{
|
|
||||||
if (AssetDatabase.CopyAsset(bakeryRuntimePath + "ftDefaultGlobalStorage.asset", bakeryRuntimePath + "ftGlobalStorage.asset"))
|
|
||||||
{
|
|
||||||
AssetDatabase.Refresh();
|
|
||||||
gstorage = AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "ftGlobalStorage.asset", typeof(ftGlobalStorage)) as ftGlobalStorage;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (gstorage == null)
|
|
||||||
{
|
|
||||||
Debug.Log("Created Bakery GlobalStorage");
|
|
||||||
gstorage = ScriptableObject.CreateInstance<ftGlobalStorage>();
|
|
||||||
AssetDatabase.CreateAsset(gstorage, bakeryRuntimePath + "ftGlobalStorage.asset");
|
|
||||||
AssetDatabase.SaveAssets();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Debug.Log("Created Bakery GlobalStorage from DefaultGlobalStorage");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (gstorage != null)
|
|
||||||
{
|
|
||||||
if (gstorage.modifiedMeshList.Count > 0)
|
|
||||||
{
|
|
||||||
gstorage.ConvertFromLegacy();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return gstorage;
|
|
||||||
}
|
|
||||||
|
|
||||||
static ftLocalStorage GetLocalStorage()
|
|
||||||
{
|
|
||||||
if (lstorage != null) return lstorage;
|
|
||||||
var bakeryRuntimePath = GetRuntimePath();
|
|
||||||
lstorage = AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "ftLocalStorage.asset", typeof(ftLocalStorage)) as ftLocalStorage;
|
|
||||||
if (lstorage == null)
|
|
||||||
{
|
|
||||||
Debug.Log("Created Bakery LocalStorage");
|
|
||||||
lstorage = ScriptableObject.CreateInstance<ftLocalStorage>();
|
|
||||||
AssetDatabase.CreateAsset(lstorage, bakeryRuntimePath + "ftLocalStorage.asset");
|
|
||||||
AssetDatabase.SaveAssets();
|
|
||||||
}
|
|
||||||
return lstorage;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void CreateGlobalStorageAsset()
|
|
||||||
{
|
|
||||||
if (gstorage == null) gstorage = GetGlobalStorage();
|
|
||||||
if (lstorage == null) lstorage = GetLocalStorage();
|
|
||||||
|
|
||||||
if (Application.isPlaying) return;
|
|
||||||
|
|
||||||
var listToProccess = gstorage.modifiedAssetPathList;
|
|
||||||
var listToProcessHash = gstorage.modifiedAssetPaddingHash;
|
|
||||||
var listProcessed = lstorage.modifiedAssetPathList;
|
|
||||||
var listProcessedHash = lstorage.modifiedAssetPaddingHash;
|
|
||||||
for(int i=0; i<listToProccess.Count; i++)
|
|
||||||
{
|
|
||||||
int localID = listProcessed.IndexOf(listToProccess[i]);
|
|
||||||
if (localID >= 0)
|
|
||||||
{
|
|
||||||
if (listToProcessHash.Count > i)
|
|
||||||
{
|
|
||||||
int globalPaddingHash = listToProcessHash[i];
|
|
||||||
if (listProcessedHash.Count > localID)
|
|
||||||
{
|
|
||||||
int localPaddingHash = listProcessedHash[localID];
|
|
||||||
if (globalPaddingHash == localPaddingHash)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Hash is not initialized = legacy
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#if UNITY_2017_1_OR_NEWER
|
|
||||||
var importer = AssetImporter.GetAtPath(listToProccess[i]) as ModelImporter;
|
|
||||||
if (importer != null)
|
|
||||||
{
|
|
||||||
var props = importer.extraUserProperties;
|
|
||||||
int propID = -1;
|
|
||||||
for(int p=0; p<props.Length; p++)
|
|
||||||
{
|
|
||||||
if (props[p].Substring(0,7) == "#BAKERY")
|
|
||||||
{
|
|
||||||
propID = p;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (propID >= 0) continue; // should be fine without additional reimport - metadata is always loaded with model
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
var asset = AssetDatabase.LoadAssetAtPath(listToProccess[i], typeof(GameObject)) as GameObject;
|
|
||||||
if (asset == null) continue;
|
|
||||||
if (asset.tag == "BakeryProcessed") continue; // legacy
|
|
||||||
//if (asset.tag != "BakeryProcessed") AssetDatabase.ImportAsset(list[i], ImportAssetOptions.ForceUpdate);
|
|
||||||
Debug.Log("Reimporting to adjust UVs: " + listToProccess[i]);
|
|
||||||
AssetDatabase.ImportAsset(listToProccess[i], ImportAssetOptions.ForceUpdate);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*public static bool IsModelProcessed(string path)
|
|
||||||
{
|
|
||||||
if (lstorage == null) lstorage = GetLocalStorage();
|
|
||||||
var listProcessed = lstorage.modifiedAssetPathList;
|
|
||||||
return listProcessed.Contains(path);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
public static void MarkModelProcessed(string path, bool enabled)
|
|
||||||
{
|
|
||||||
if (lstorage == null) lstorage = GetLocalStorage();
|
|
||||||
if (gstorage == null) gstorage = GetGlobalStorage();
|
|
||||||
if (enabled)
|
|
||||||
{
|
|
||||||
int gid = gstorage.modifiedAssetPathList.IndexOf(path);
|
|
||||||
if (gid < 0) return;
|
|
||||||
int hash = gstorage.CalculatePaddingHash(gid);
|
|
||||||
while(gstorage.modifiedAssetPaddingHash.Count <= gid) gstorage.modifiedAssetPaddingHash.Add(0);
|
|
||||||
gstorage.modifiedAssetPaddingHash[gid] = hash;
|
|
||||||
|
|
||||||
int id = lstorage.modifiedAssetPathList.IndexOf(path);
|
|
||||||
if (id < 0)
|
|
||||||
{
|
|
||||||
lstorage.modifiedAssetPathList.Add(path);
|
|
||||||
id = lstorage.modifiedAssetPathList.Count - 1;
|
|
||||||
}
|
|
||||||
while(lstorage.modifiedAssetPaddingHash.Count <= id) lstorage.modifiedAssetPaddingHash.Add(0);
|
|
||||||
lstorage.modifiedAssetPaddingHash[id] = hash;
|
|
||||||
EditorUtility.SetDirty(gstorage);
|
|
||||||
EditorSceneManager.MarkAllScenesDirty();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
int id = lstorage.modifiedAssetPathList.IndexOf(path);
|
|
||||||
if (id >= 0)
|
|
||||||
{
|
|
||||||
lstorage.modifiedAssetPathList.RemoveAt(id);
|
|
||||||
if (lstorage.modifiedAssetPaddingHash.Count > id) lstorage.modifiedAssetPaddingHash.RemoveAt(id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
EditorUtility.SetDirty(lstorage);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static ftLightmaps() {
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
EditorSceneManager.sceneOpening -= OnSceneOpening; // Andrew fix
|
|
||||||
EditorSceneManager.sceneOpening += OnSceneOpening;
|
|
||||||
|
|
||||||
EditorApplication.update -= FirstUpdate; // Andrew fix
|
|
||||||
EditorApplication.update += FirstUpdate;
|
|
||||||
|
|
||||||
EditorApplication.hierarchyWindowChanged -= OnSceneChangedEditor;
|
|
||||||
EditorApplication.hierarchyWindowChanged += OnSceneChangedEditor;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SceneManager.activeSceneChanged -= OnSceneChangedPlay;
|
|
||||||
SceneManager.activeSceneChanged += OnSceneChangedPlay;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
static void FirstUpdate()
|
|
||||||
{
|
|
||||||
editorUpdateCalled = true;
|
|
||||||
CreateGlobalStorageAsset();
|
|
||||||
EditorApplication.update -= FirstUpdate;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static void SetDirectionalMode()
|
|
||||||
{
|
|
||||||
if (directionalMode >= 0) LightmapSettings.lightmapsMode = directionalMode==1 ? LightmapsMode.CombinedDirectional : LightmapsMode.NonDirectional;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void OnSceneChangedPlay(Scene prev, Scene next) {
|
|
||||||
//if (Lightmapping.lightingDataAsset == null) {
|
|
||||||
SetDirectionalMode();
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
static void OnSceneChangedEditor() {
|
|
||||||
// Unity can modify directional mode on scene change, have to force the correct one
|
|
||||||
// activeSceneChangedInEditMode isn't always available
|
|
||||||
//if (Lightmapping.lightingDataAsset == null) {
|
|
||||||
SetDirectionalMode();
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
|
|
||||||
// using Opening instead of Opened because it's called before lightmap data is loaded and proper directional mode is set
|
|
||||||
//static void OnSceneOpened(Scene scene, OpenSceneMode mode) {
|
|
||||||
static void OnSceneOpening(string path, OpenSceneMode mode) {
|
|
||||||
//Refresh();
|
|
||||||
//if (scene.name == "_tempScene") return;
|
|
||||||
if (Path.GetFileNameWithoutExtension(path) == "_tempScene") return;
|
|
||||||
mustReloadRenderSettings = true;
|
|
||||||
directionalMode = -1;
|
|
||||||
/*if (!finalInitDone)
|
|
||||||
{
|
|
||||||
CreateGlobalStorageAsset();
|
|
||||||
finalInitDone = true;
|
|
||||||
}*/
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
public static void RefreshFull() {
|
|
||||||
var activeScene = SceneManager.GetActiveScene();
|
|
||||||
var sceneCount = SceneManager.sceneCount;
|
|
||||||
|
|
||||||
for(int i=0; i<sceneCount; i++)
|
|
||||||
{
|
|
||||||
var scene = SceneManager.GetSceneAt(i);
|
|
||||||
if (!scene.isLoaded) continue;
|
|
||||||
SceneManager.SetActiveScene(scene);
|
|
||||||
LightmapSettings.lightmaps = new LightmapData[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
for(int i=0; i<sceneCount; i++)
|
|
||||||
{
|
|
||||||
RefreshScene(SceneManager.GetSceneAt(i), null, true);
|
|
||||||
}
|
|
||||||
SceneManager.SetActiveScene(activeScene);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static GameObject FindInScene(string nm, Scene scn)
|
|
||||||
{
|
|
||||||
var objs = scn.GetRootGameObjects();
|
|
||||||
for(int i=0; i<objs.Length; i++)
|
|
||||||
{
|
|
||||||
if (objs[i].name == nm) return objs[i];
|
|
||||||
var obj = objs[i].transform.Find(nm);
|
|
||||||
if (obj != null) return obj.gameObject;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* public static void RefreshScene(int sceneID, ref List<LightmapData> lmaps, int lmCounter) {
|
|
||||||
RefreshScene(scene);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
static Texture2D GetEmptyDirectionTex(ftLightmapsStorage storage)
|
|
||||||
{
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
if (storage.emptyDirectionTex == null)
|
|
||||||
{
|
|
||||||
var bakeryRuntimePath = GetRuntimePath();
|
|
||||||
storage.emptyDirectionTex = AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "emptyDirection.tga", typeof(Texture2D)) as Texture2D;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
return storage.emptyDirectionTex;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void RefreshScene(Scene scene, ftLightmapsStorage storage = null, bool updateNonBaked = false) {
|
|
||||||
var sceneCount = SceneManager.sceneCount;
|
|
||||||
|
|
||||||
if (globalMapsAdditional == null) globalMapsAdditional = new List<LightmapAdditionalData>();
|
|
||||||
|
|
||||||
var lmaps = new List<LightmapData>();
|
|
||||||
var lmapsAdditional = new List<LightmapAdditionalData>();
|
|
||||||
var existingLmaps = LightmapSettings.lightmaps;
|
|
||||||
var existingLmapsAdditional = globalMapsAdditional;
|
|
||||||
|
|
||||||
// Acquire storage
|
|
||||||
if (storage == null)
|
|
||||||
{
|
|
||||||
if (!scene.isLoaded)
|
|
||||||
{
|
|
||||||
//Debug.LogError("dbg: Scene not loaded");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
SceneManager.SetActiveScene(scene);
|
|
||||||
|
|
||||||
var go = FindInScene("!ftraceLightmaps", scene);
|
|
||||||
if (go==null) {
|
|
||||||
//Debug.LogError("dbg: no storage");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
storage = go.GetComponent<ftLightmapsStorage>();
|
|
||||||
if (storage == null) {
|
|
||||||
//Debug.LogError("dbg: no storage 2");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (storage.idremap == null || storage.idremap.Length != storage.maps.Count)
|
|
||||||
{
|
|
||||||
storage.idremap = new int[storage.maps.Count];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Decide which global engine lightmapping mode to use
|
|
||||||
// TODO: allow mixing different modes
|
|
||||||
directionalMode = storage.dirMaps.Count != 0 ? 1 : 0;
|
|
||||||
bool patchedDirection = false;
|
|
||||||
SetDirectionalMode();
|
|
||||||
|
|
||||||
// Set dummy directional tex for non-directional lightmaps in directional mode
|
|
||||||
if (directionalMode == 1)
|
|
||||||
{
|
|
||||||
for(int i=0; i<existingLmaps.Length; i++)
|
|
||||||
{
|
|
||||||
if (existingLmaps[i].lightmapDir == null)
|
|
||||||
{
|
|
||||||
var lm = existingLmaps[i];
|
|
||||||
lm.lightmapDir = GetEmptyDirectionTex(storage);
|
|
||||||
existingLmaps[i] = lm;
|
|
||||||
patchedDirection = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Detect if changes to lightmap array are necessary
|
|
||||||
bool sameArray = false;
|
|
||||||
if (existingLmaps.Length == storage.maps.Count)
|
|
||||||
{
|
|
||||||
sameArray = true;
|
|
||||||
for(int i=0; i<storage.maps.Count; i++)
|
|
||||||
{
|
|
||||||
if (existingLmaps[i].lightmapColor != storage.maps[i])
|
|
||||||
{
|
|
||||||
sameArray = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (storage.rnmMaps0.Count > i && (existingLmapsAdditional.Count <= i || existingLmapsAdditional[i].rnm0 != storage.rnmMaps0[i]))
|
|
||||||
{
|
|
||||||
sameArray = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!sameArray) // create new lightmap array
|
|
||||||
{
|
|
||||||
if (sceneCount >= 1)
|
|
||||||
{
|
|
||||||
// first add old
|
|
||||||
for(int i=0; i<existingLmaps.Length; i++) {
|
|
||||||
// skip empty lightmaps (can be created by 5.6 ldata asset or vertex color)
|
|
||||||
// ... unless there are valid lightmaps around them
|
|
||||||
bool lightmapIsEmpty = existingLmaps[i] == null || (existingLmaps[i].lightmapColor == null && existingLmaps[i].shadowMask == null);
|
|
||||||
bool lightmapCanBeSkipped = lightmapIsEmpty && (i == 0 || i == existingLmaps.Length - 1);
|
|
||||||
if (!lightmapCanBeSkipped)
|
|
||||||
{
|
|
||||||
lmaps.Add(existingLmaps[i]);
|
|
||||||
if (existingLmapsAdditional.Count > i) lmapsAdditional.Add(existingLmapsAdditional[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for(int i=0; i<storage.maps.Count; i++) {
|
|
||||||
|
|
||||||
var texlm = storage.maps[i];
|
|
||||||
Texture2D texmask = null;
|
|
||||||
Texture2D texdir = null;
|
|
||||||
Texture2D texrnm0 = null;
|
|
||||||
Texture2D texrnm1 = null;
|
|
||||||
Texture2D texrnm2 = null;
|
|
||||||
int mapMode = 0;
|
|
||||||
if (storage.masks.Count > i) texmask = storage.masks[i];
|
|
||||||
if (storage.dirMaps.Count > i) texdir = storage.dirMaps[i];
|
|
||||||
if (storage.rnmMaps0.Count > i)
|
|
||||||
{
|
|
||||||
texrnm0 = storage.rnmMaps0[i];
|
|
||||||
texrnm1 = storage.rnmMaps1[i];
|
|
||||||
texrnm2 = storage.rnmMaps2[i];
|
|
||||||
mapMode = storage.mapsMode[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
bool found = false;
|
|
||||||
int firstEmpty = -1;
|
|
||||||
for(int j=0; j<lmaps.Count; j++) {
|
|
||||||
if (lmaps[j].lightmapColor == texlm && lmaps[j].shadowMask == texmask)
|
|
||||||
{
|
|
||||||
// lightmap already added - reuse
|
|
||||||
storage.idremap[i] = j;
|
|
||||||
found = true;
|
|
||||||
|
|
||||||
//Debug.LogError("reused "+j);
|
|
||||||
|
|
||||||
// additional maps array could be flushed due to script recompilation - recover
|
|
||||||
if (texrnm0 != null && (lmapsAdditional.Count <= j || lmapsAdditional[j].rnm0 == null))
|
|
||||||
{
|
|
||||||
while(lmapsAdditional.Count <= j) lmapsAdditional.Add(new LightmapAdditionalData());
|
|
||||||
var l = new LightmapAdditionalData();
|
|
||||||
l.rnm0 = texrnm0;
|
|
||||||
l.rnm1 = texrnm1;
|
|
||||||
l.rnm2 = texrnm2;
|
|
||||||
l.mode = mapMode;
|
|
||||||
lmapsAdditional[j] = l;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else if (firstEmpty < 0 && lmaps[j].lightmapColor == null && lmaps[j].shadowMask == null)
|
|
||||||
{
|
|
||||||
// free (deleted) entry in existing lightmap list - possibly reuse
|
|
||||||
storage.idremap[i] = j;
|
|
||||||
firstEmpty = j;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!found)
|
|
||||||
{
|
|
||||||
LightmapData lm;
|
|
||||||
if (firstEmpty >= 0)
|
|
||||||
{
|
|
||||||
lm = lmaps[firstEmpty];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
lm = new LightmapData();
|
|
||||||
}
|
|
||||||
|
|
||||||
lm.lightmapColor = texlm;
|
|
||||||
if (storage.masks.Count > i)
|
|
||||||
{
|
|
||||||
lm.shadowMask = texmask;
|
|
||||||
}
|
|
||||||
if (storage.dirMaps.Count > i && texdir != null)
|
|
||||||
{
|
|
||||||
lm.lightmapDir = texdir;
|
|
||||||
}
|
|
||||||
else if (directionalMode == 1)
|
|
||||||
{
|
|
||||||
lm.lightmapDir = GetEmptyDirectionTex(storage);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (firstEmpty < 0)
|
|
||||||
{
|
|
||||||
lmaps.Add(lm);
|
|
||||||
storage.idremap[i] = lmaps.Count - 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
lmaps[firstEmpty] = lm;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (storage.rnmMaps0.Count > i)
|
|
||||||
{
|
|
||||||
var l = new LightmapAdditionalData();
|
|
||||||
l.rnm0 = texrnm0;
|
|
||||||
l.rnm1 = texrnm1;
|
|
||||||
l.rnm2 = texrnm2;
|
|
||||||
l.mode = mapMode;
|
|
||||||
|
|
||||||
if (firstEmpty < 0)
|
|
||||||
{
|
|
||||||
//Debug.LogError("added "+(lmaps.Count-1));
|
|
||||||
while(lmapsAdditional.Count < lmaps.Count-1) lmapsAdditional.Add(new LightmapAdditionalData());
|
|
||||||
lmapsAdditional.Add(l);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//Debug.LogError("set " + firstEmpty);
|
|
||||||
while(lmapsAdditional.Count < firstEmpty+1) lmapsAdditional.Add(new LightmapAdditionalData());
|
|
||||||
lmapsAdditional[firstEmpty] = l;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else // reuse existing lightmap array, only remap IDs
|
|
||||||
{
|
|
||||||
for(int i=0; i<storage.maps.Count; i++) {
|
|
||||||
storage.idremap[i] = i;
|
|
||||||
|
|
||||||
//Debug.LogError("full reuse");
|
|
||||||
|
|
||||||
/*if (storage.rnmMaps0.Count > i)
|
|
||||||
{
|
|
||||||
var l = new LightmapAdditionalData();
|
|
||||||
l.rnm0 = storage.rnmMaps0[i];
|
|
||||||
l.rnm1 = storage.rnmMaps1[i];
|
|
||||||
l.rnm2 = storage.rnmMaps2[i];
|
|
||||||
l.mode = storage.mapsMode[i];
|
|
||||||
lmapsAdditional.Add(l);
|
|
||||||
}*/
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
// Set editor lighting mode
|
|
||||||
if (storage.bakedRenderers != null && storage.bakedRenderers.Count > 0)
|
|
||||||
{
|
|
||||||
Lightmapping.giWorkflowMode = Lightmapping.GIWorkflowMode.OnDemand;
|
|
||||||
Lightmapping.realtimeGI = storage.usesRealtimeGI;
|
|
||||||
//Lightmapping.bakedGI = true; // ? only used for enlighten ? makes editor laggy ?
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Replace the lightmap array if needed
|
|
||||||
if (sameArray && patchedDirection) LightmapSettings.lightmaps = existingLmaps;
|
|
||||||
if (!sameArray)
|
|
||||||
{
|
|
||||||
LightmapSettings.lightmaps = lmaps.ToArray();
|
|
||||||
globalMapsAdditional = lmapsAdditional;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
// Debug
|
|
||||||
var lms = LightmapSettings.lightmaps;
|
|
||||||
for(int i=0; i<lms.Length; i++)
|
|
||||||
{
|
|
||||||
var name1 = ((lms[i]==null || lms[i].lightmapColor==null) ? "-" : lms[i].lightmapColor.name);
|
|
||||||
var name2 = (globalMapsAdditional.Count > i ?(globalMapsAdditional[i].rnm0==null?"x":globalMapsAdditional[i].rnm0.name) : "-");
|
|
||||||
Debug.LogError(i+" "+name1+" "+name2);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Attempt to update skybox probe
|
|
||||||
if (RenderSettings.ambientMode == UnityEngine.Rendering.AmbientMode.Skybox)// && Lightmapping.lightingDataAsset == null)
|
|
||||||
{
|
|
||||||
var probe = RenderSettings.ambientProbe ;
|
|
||||||
int isEmpty = -1;
|
|
||||||
for(int i=0; i<3; i++)
|
|
||||||
{
|
|
||||||
for(int j=0; j<9; j++)
|
|
||||||
{
|
|
||||||
// default bugged probes are [almost] black or 1302?
|
|
||||||
float a = Mathf.Abs(probe[i,j]);
|
|
||||||
if (a > 1000.0f || a < 0.000001f)
|
|
||||||
{
|
|
||||||
isEmpty = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (probe[i,j] != 0)
|
|
||||||
{
|
|
||||||
isEmpty = 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (isEmpty >= 0) break;
|
|
||||||
}
|
|
||||||
if (isEmpty != 0)
|
|
||||||
{
|
|
||||||
DynamicGI.UpdateEnvironment();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set lightmap data on mesh renderers
|
|
||||||
var emptyVec4 = new Vector4(1,1,0,0);
|
|
||||||
for(int i=0; i<storage.bakedRenderers.Count; i++)
|
|
||||||
{
|
|
||||||
var r = storage.bakedRenderers[i];
|
|
||||||
if (r == null)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
//if (r.isPartOfStaticBatch) continue;
|
|
||||||
var id = storage.bakedIDs[i];
|
|
||||||
Mesh vmesh = null;
|
|
||||||
if (i < storage.bakedVertexColorMesh.Count) vmesh = storage.bakedVertexColorMesh[i];
|
|
||||||
|
|
||||||
if (vmesh != null)
|
|
||||||
{
|
|
||||||
var r2 = r as MeshRenderer;
|
|
||||||
if (r2 == null)
|
|
||||||
{
|
|
||||||
Debug.LogError("Unity cannot use additionalVertexStreams on non-MeshRenderer");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
r2.additionalVertexStreams = vmesh;
|
|
||||||
r2.lightmapIndex = 0xFFFF;
|
|
||||||
var prop = new MaterialPropertyBlock();
|
|
||||||
prop.SetFloat("bakeryLightmapMode", 1);
|
|
||||||
r2.SetPropertyBlock(prop);
|
|
||||||
}
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
int globalID = (id < 0 || id >= storage.idremap.Length) ? id : storage.idremap[id];
|
|
||||||
r.lightmapIndex = globalID;
|
|
||||||
|
|
||||||
if (!r.isPartOfStaticBatch)
|
|
||||||
{
|
|
||||||
// scaleOffset is baked on static batches already
|
|
||||||
var scaleOffset = id < 0 ? emptyVec4 : storage.bakedScaleOffset[i];
|
|
||||||
r.lightmapScaleOffset = scaleOffset;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (r.lightmapIndex >= 0 && globalID < globalMapsAdditional.Count)
|
|
||||||
{
|
|
||||||
var lmap = globalMapsAdditional[globalID];
|
|
||||||
if (lmap.rnm0 != null)
|
|
||||||
{
|
|
||||||
var prop = new MaterialPropertyBlock();
|
|
||||||
prop.SetTexture("_RNM0", lmap.rnm0);
|
|
||||||
prop.SetTexture("_RNM1", lmap.rnm1);
|
|
||||||
prop.SetTexture("_RNM2", lmap.rnm2);
|
|
||||||
prop.SetFloat("bakeryLightmapMode", lmap.mode);
|
|
||||||
r.SetPropertyBlock(prop);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set lightmap data on definitely-not-baked mesh renderers (can be possibly avoided)
|
|
||||||
if (updateNonBaked)
|
|
||||||
{
|
|
||||||
for(int i=0; i<storage.nonBakedRenderers.Count; i++)
|
|
||||||
{
|
|
||||||
var r = storage.nonBakedRenderers[i];
|
|
||||||
if (r == null) continue;
|
|
||||||
if (r.isPartOfStaticBatch) continue;
|
|
||||||
r.lightmapIndex = 0xFFFE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set lightmap data on terrains
|
|
||||||
for(int i=0; i<storage.bakedRenderersTerrain.Count; i++)
|
|
||||||
{
|
|
||||||
var r = storage.bakedRenderersTerrain[i];
|
|
||||||
if (r == null)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var id = storage.bakedIDsTerrain[i];
|
|
||||||
r.lightmapIndex = (id < 0 || id >= storage.idremap.Length) ? id : storage.idremap[id];
|
|
||||||
|
|
||||||
var scaleOffset = id < 0 ? emptyVec4 : storage.bakedScaleOffsetTerrain[i];
|
|
||||||
r.lightmapScaleOffset = scaleOffset;
|
|
||||||
|
|
||||||
if (r.lightmapIndex >= 0 && r.lightmapIndex < globalMapsAdditional.Count)
|
|
||||||
{
|
|
||||||
var lmap = globalMapsAdditional[r.lightmapIndex];
|
|
||||||
if (lmap.rnm0 != null)
|
|
||||||
{
|
|
||||||
var prop = new MaterialPropertyBlock();
|
|
||||||
prop.SetTexture("_RNM0", lmap.rnm0);
|
|
||||||
prop.SetTexture("_RNM1", lmap.rnm1);
|
|
||||||
prop.SetTexture("_RNM2", lmap.rnm2);
|
|
||||||
prop.SetFloat("bakeryLightmapMode", lmap.mode);
|
|
||||||
r.SetSplatMaterialPropertyBlock(prop);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set shadowmask parameters on lights
|
|
||||||
for(int i=0; i<storage.bakedLights.Count; i++)
|
|
||||||
{
|
|
||||||
#if UNITY_2017_3_OR_NEWER
|
|
||||||
if (storage.bakedLights[i] == null) continue;
|
|
||||||
|
|
||||||
int channel = storage.bakedLightChannels[i];
|
|
||||||
var output = new LightBakingOutput();
|
|
||||||
output.isBaked = true;
|
|
||||||
if (channel < 0)
|
|
||||||
{
|
|
||||||
output.lightmapBakeType = LightmapBakeType.Baked;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
output.lightmapBakeType = LightmapBakeType.Mixed;
|
|
||||||
output.mixedLightingMode = channel > 100 ? MixedLightingMode.Subtractive : MixedLightingMode.Shadowmask;
|
|
||||||
output.occlusionMaskChannel = channel > 100 ? -1 : channel;
|
|
||||||
output.probeOcclusionLightIndex = storage.bakedLights[i].bakingOutput.probeOcclusionLightIndex;
|
|
||||||
}
|
|
||||||
storage.bakedLights[i].bakingOutput = output;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
// Increment lightmap refcounts
|
|
||||||
if (lightmapRefCount == null) lightmapRefCount = new List<int>();
|
|
||||||
for(int i=0; i<storage.idremap.Length; i++)
|
|
||||||
{
|
|
||||||
int currentID = storage.idremap[i];
|
|
||||||
while(lightmapRefCount.Count <= currentID) lightmapRefCount.Add(0);
|
|
||||||
if (lightmapRefCount[currentID] < 0) lightmapRefCount[currentID] = 0;
|
|
||||||
lightmapRefCount[currentID]++;
|
|
||||||
}
|
|
||||||
//if (loadedStorages == null) loadedStorages = new List<ftLightmapsStorage>();
|
|
||||||
//if (loadedStorages.Contains(storage)) loadedStorages.Add(storage);
|
|
||||||
|
|
||||||
//return appendOffset;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void UnloadScene(ftLightmapsStorage storage)
|
|
||||||
{
|
|
||||||
if (lightmapRefCount == null) return;
|
|
||||||
if (storage.idremap == null) return;
|
|
||||||
|
|
||||||
//int idx = loadedStorages.IndexOf(storage);
|
|
||||||
//if (idx >= 0) loadedStorages.RemoveAt(idx);
|
|
||||||
|
|
||||||
LightmapData[] existingLmaps = null;
|
|
||||||
List<LightmapAdditionalData> existingLmapsAdditional = null;
|
|
||||||
//bool rebuild = false;
|
|
||||||
for(int i=0; i<storage.idremap.Length; i++)
|
|
||||||
{
|
|
||||||
int currentID = storage.idremap[i];
|
|
||||||
|
|
||||||
// just never unload the 1st lightmap to prevent Unity from losing LM encoding settings
|
|
||||||
// remapping all IDs at runtime would introduce a perf hiccup
|
|
||||||
if (currentID == 0) continue;
|
|
||||||
|
|
||||||
if (lightmapRefCount.Count <= currentID) continue;
|
|
||||||
lightmapRefCount[currentID]--;
|
|
||||||
//Debug.LogError("rem: "+currentID+" "+lightmapRefCount[currentID]);
|
|
||||||
if (lightmapRefCount[currentID] == 0)
|
|
||||||
{
|
|
||||||
if (existingLmaps == null) existingLmaps = LightmapSettings.lightmaps;
|
|
||||||
|
|
||||||
if (existingLmaps.Length > currentID)
|
|
||||||
{
|
|
||||||
existingLmaps[currentID].lightmapColor = null;
|
|
||||||
existingLmaps[currentID].lightmapDir = null;
|
|
||||||
existingLmaps[currentID].shadowMask = null;
|
|
||||||
|
|
||||||
if (existingLmapsAdditional == null) existingLmapsAdditional = globalMapsAdditional;
|
|
||||||
if (existingLmapsAdditional != null && existingLmapsAdditional.Count > currentID)
|
|
||||||
{
|
|
||||||
var emptyEntry = new LightmapAdditionalData();
|
|
||||||
existingLmapsAdditional[currentID] = emptyEntry;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//if (currentID == 0) rebuild = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
// If the first lightmap was unloaded, we need to rebuild the lightmap array
|
|
||||||
// because Unity uses 1st lightmap to determine encoding
|
|
||||||
if (rebuild)
|
|
||||||
{
|
|
||||||
int newLength = 0;
|
|
||||||
for(int i=0; i<existingLmaps.Length; i++)
|
|
||||||
{
|
|
||||||
if (existingLmaps[i].lightmapColor != null) newLength++;
|
|
||||||
}
|
|
||||||
var existingLmaps2 = new LightmapData[newLength];
|
|
||||||
int ctr = 0;
|
|
||||||
for(int i=0; i<existingLmaps.Length; i++)
|
|
||||||
{
|
|
||||||
if (existingLmaps[i].lightmapColor != null)
|
|
||||||
{
|
|
||||||
existingLmaps2[ctr] = existingLmaps[i];
|
|
||||||
ctr++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
existingLmaps = existingLmaps2;
|
|
||||||
|
|
||||||
for(int i=0; i<)
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (existingLmaps != null) LightmapSettings.lightmaps = existingLmaps;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void RefreshScene2(Scene scene, ftLightmapsStorage storage) {
|
|
||||||
Renderer r;
|
|
||||||
int id;
|
|
||||||
for(int i=0; i<storage.bakedRenderers.Count; i++)
|
|
||||||
{
|
|
||||||
r = storage.bakedRenderers[i];
|
|
||||||
if (r == null) continue;
|
|
||||||
|
|
||||||
id = storage.bakedIDs[i];
|
|
||||||
r.lightmapIndex = (id < 0 || id >= storage.idremap.Length) ? id : storage.idremap[id];
|
|
||||||
}
|
|
||||||
|
|
||||||
Terrain r2;
|
|
||||||
for(int i=0; i<storage.bakedRenderersTerrain.Count; i++)
|
|
||||||
{
|
|
||||||
r2 = storage.bakedRenderersTerrain[i];
|
|
||||||
if (r2 == null) continue;
|
|
||||||
|
|
||||||
id = storage.bakedIDsTerrain[i];
|
|
||||||
r2.lightmapIndex = (id < 0 || id >= storage.idremap.Length) ? id : storage.idremap[id];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,12 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 7a45445dfd5b7b44cb9545da4e5ed41c
|
|
||||||
timeCreated: 1496213851
|
|
||||||
licenseType: Store
|
|
||||||
MonoImporter:
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,458 +0,0 @@
|
|||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
|
||||||
using UnityEngine.SceneManagement;
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
using UnityEditor;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
[ExecuteInEditMode]
|
|
||||||
public class ftLightmapsStorage : MonoBehaviour{
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
[System.Serializable]
|
|
||||||
public class LightData {
|
|
||||||
public Matrix4x4 tform;
|
|
||||||
public Color color;
|
|
||||||
public float intensity, range, radius;
|
|
||||||
public int samples, samples2;
|
|
||||||
public int bitmask;
|
|
||||||
public bool bakeToIndirect;
|
|
||||||
public bool selfShadow = false;
|
|
||||||
public bool realisticFalloff = false;
|
|
||||||
public int projMode;
|
|
||||||
public Object cookie;
|
|
||||||
public float angle = 30.0f;
|
|
||||||
}
|
|
||||||
|
|
||||||
public class ImplicitLightmapData
|
|
||||||
{
|
|
||||||
public Dictionary<GameObject, Object> implicitGroupMap = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Saved render settings
|
|
||||||
public int renderSettingsBounces = 5;
|
|
||||||
public int renderSettingsGISamples = 16;
|
|
||||||
public float renderSettingsGIBackFaceWeight = 0;
|
|
||||||
public int renderSettingsTileSize = 512;
|
|
||||||
public float renderSettingsPriority = 2;
|
|
||||||
public float renderSettingsTexelsPerUnit = 20;
|
|
||||||
public bool renderSettingsForceRefresh = true;
|
|
||||||
public bool renderSettingsForceRebuildGeometry = true;
|
|
||||||
public bool renderSettingsPerformRendering = true;
|
|
||||||
public int renderSettingsUserRenderMode = 0;
|
|
||||||
public bool renderSettingsDistanceShadowmask = false;
|
|
||||||
public int renderSettingsSettingsMode = 0;
|
|
||||||
public bool renderSettingsFixSeams = true;
|
|
||||||
public bool renderSettingsDenoise = true;
|
|
||||||
public bool renderSettingsDenoise2x = false;
|
|
||||||
public bool renderSettingsEncode = true;
|
|
||||||
public int renderSettingsEncodeMode = 0;
|
|
||||||
public bool renderSettingsOverwriteWarning = false;
|
|
||||||
public bool renderSettingsAutoAtlas = true;
|
|
||||||
public bool renderSettingsUnwrapUVs = true;
|
|
||||||
public bool renderSettingsForceDisableUnwrapUVs = false;
|
|
||||||
public int renderSettingsMaxAutoResolution = 4096;
|
|
||||||
public int renderSettingsMinAutoResolution = 16;
|
|
||||||
public bool renderSettingsUnloadScenes = true;
|
|
||||||
public bool renderSettingsAdjustSamples = true;
|
|
||||||
public int renderSettingsGILODMode = 0;
|
|
||||||
public bool renderSettingsGILODModeEnabled = true;
|
|
||||||
public bool renderSettingsCheckOverlaps = false;
|
|
||||||
public bool renderSettingsSkipOutOfBoundsUVs = true;
|
|
||||||
public float renderSettingsHackEmissiveBoost = 1;
|
|
||||||
public float renderSettingsHackIndirectBoost = 1;
|
|
||||||
public string renderSettingsTempPath = "";
|
|
||||||
public string renderSettingsOutPath = "";
|
|
||||||
public bool renderSettingsUseScenePath = false;
|
|
||||||
public float renderSettingsHackAOIntensity = 0;
|
|
||||||
public int renderSettingsHackAOSamples = 16;
|
|
||||||
public float renderSettingsHackAORadius = 1;
|
|
||||||
public bool renderSettingsShowAOSettings = false;
|
|
||||||
public bool renderSettingsShowTasks = true;
|
|
||||||
public bool renderSettingsShowTasks2 = false;
|
|
||||||
public bool renderSettingsShowPaths = true;
|
|
||||||
public bool renderSettingsShowNet = true;
|
|
||||||
public bool renderSettingsOcclusionProbes = false;
|
|
||||||
public bool renderSettingsTexelsPerMap = false;
|
|
||||||
public float renderSettingsTexelsColor = 1;
|
|
||||||
public float renderSettingsTexelsMask = 1;
|
|
||||||
public float renderSettingsTexelsDir = 1;
|
|
||||||
public bool renderSettingsShowDirWarning = true;
|
|
||||||
public int renderSettingsRenderDirMode = 0;
|
|
||||||
public bool renderSettingsShowCheckerSettings = false;
|
|
||||||
public bool renderSettingsSamplesWarning = true;
|
|
||||||
public bool renderSettingsPrefabWarning = true;
|
|
||||||
public bool renderSettingsSplitByScene = false;
|
|
||||||
public bool renderSettingsUVPaddingMax = false;
|
|
||||||
public bool renderSettingsPostPacking = true;
|
|
||||||
public bool renderSettingsHoleFilling = false;
|
|
||||||
public bool renderSettingsBeepOnFinish = false;
|
|
||||||
public bool renderSettingsExportTerrainAsHeightmap = true;
|
|
||||||
public bool renderSettingsRTXMode = false;
|
|
||||||
public int renderSettingsLightProbeMode = 1;
|
|
||||||
public bool renderSettingsClientMode = false;
|
|
||||||
public string renderSettingsServerAddress = "127.0.0.1";
|
|
||||||
public int renderSettingsUnwrapper = 0;
|
|
||||||
public int renderSettingsDenoiserType = (int)ftGlobalStorage.DenoiserType.OpenImageDenoise;
|
|
||||||
public bool renderSettingsExportTerrainTrees = false;
|
|
||||||
public bool renderSettingsShowPerf = true;
|
|
||||||
public int renderSettingsSampleDiv = 1;
|
|
||||||
public ftGlobalStorage.AtlasPacker renderSettingsAtlasPacker = ftGlobalStorage.AtlasPacker.xatlas;
|
|
||||||
public bool renderSettingsBatchPoints = true;
|
|
||||||
public bool renderSettingsRTPVExport = true;
|
|
||||||
public bool renderSettingsRTPVSceneView = false;
|
|
||||||
public int renderSettingsRTPVWidth = 640;
|
|
||||||
public int renderSettingsRTPVHeight = 360;
|
|
||||||
public int lastBakeTime = 0;
|
|
||||||
|
|
||||||
public bool enlightenWarningShown = false;
|
|
||||||
public bool enlightenWarningShown2 = false;
|
|
||||||
|
|
||||||
// Light settings from the last bake
|
|
||||||
public List<int> lightUIDs = new List<int>();
|
|
||||||
public List<LightData> lights = new List<LightData>();
|
|
||||||
public Dictionary<int, LightData> lightsDict;
|
|
||||||
|
|
||||||
// List of implicit groups
|
|
||||||
//public List<BakeryLightmapGroup> implicitGroups = new List<BakeryLightmapGroup>();
|
|
||||||
public List<Object> implicitGroups = new List<Object>();
|
|
||||||
public List<GameObject> implicitGroupedObjects;
|
|
||||||
|
|
||||||
//public List<BakeryLightmapGroupPlain> previouslyBakedGroups = new List<BakeryLightmapGroupPlain>();
|
|
||||||
|
|
||||||
// List of baked lightmap world-space bounds
|
|
||||||
public List<Bounds> bounds = new List<Bounds>();
|
|
||||||
|
|
||||||
// Per-lightmap flags
|
|
||||||
public List<bool> hasEmissive = new List<bool>();
|
|
||||||
|
|
||||||
//public float[][] uvSrc;
|
|
||||||
//public float[][] uvDest;
|
|
||||||
//public int[][] lmrIndices;
|
|
||||||
public int[] uvBuffOffsets;
|
|
||||||
public int[] uvBuffLengths;
|
|
||||||
public float[] uvSrcBuff;
|
|
||||||
public float[] uvDestBuff;
|
|
||||||
public int[] lmrIndicesOffsets;
|
|
||||||
public int[] lmrIndicesLengths;
|
|
||||||
public int[] lmrIndicesBuff;
|
|
||||||
|
|
||||||
public int[] lmGroupLODResFlags; // bits which lods are needed for which LMGroups
|
|
||||||
public int[] lmGroupMinLOD; // minimum possible resolution for given LMGroup given UV island count
|
|
||||||
public int[] lmGroupLODMatrix;
|
|
||||||
|
|
||||||
// Reuired for network bakes
|
|
||||||
public List<string> serverGetFileList = new List<string>();
|
|
||||||
public List<bool> lightmapHasColor = new List<bool>();
|
|
||||||
public List<bool> lightmapHasMask = new List<bool>();
|
|
||||||
public List<bool> lightmapHasDir = new List<bool>();
|
|
||||||
public List<bool> lightmapHasRNM = new List<bool>();
|
|
||||||
|
|
||||||
// Partial copy of GlobalStorage to recover UV padding if needed
|
|
||||||
public List<string> modifiedAssetPathList = new List<string>();
|
|
||||||
public List<ftGlobalStorage.AdjustedMesh> modifiedAssets = new List<ftGlobalStorage.AdjustedMesh>();
|
|
||||||
|
|
||||||
public Texture2D debugTex;
|
|
||||||
public RenderTexture debugRT;
|
|
||||||
|
|
||||||
public void Init() {
|
|
||||||
lightsDict = new Dictionary<int, LightData>();
|
|
||||||
for(int i=0; i<lights.Count; i++) {
|
|
||||||
lightsDict[lightUIDs[i]] = lights[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void StoreLight(int uid, LightData light) {
|
|
||||||
lightUIDs.Add(uid);
|
|
||||||
lights.Add(light);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void CopySettings(ftLightmapsStorage src, ftLightmapsStorage dest)
|
|
||||||
{
|
|
||||||
dest.renderSettingsBounces = src.renderSettingsBounces;
|
|
||||||
dest.renderSettingsGISamples = src.renderSettingsGISamples;
|
|
||||||
dest.renderSettingsGIBackFaceWeight = src.renderSettingsGIBackFaceWeight;
|
|
||||||
dest.renderSettingsTileSize = src.renderSettingsTileSize;
|
|
||||||
dest.renderSettingsPriority = src.renderSettingsPriority;
|
|
||||||
dest.renderSettingsTexelsPerUnit = src.renderSettingsTexelsPerUnit;
|
|
||||||
dest.renderSettingsForceRefresh = src.renderSettingsForceRefresh;
|
|
||||||
dest.renderSettingsForceRebuildGeometry = src.renderSettingsForceRebuildGeometry;
|
|
||||||
dest.renderSettingsPerformRendering = src.renderSettingsPerformRendering;
|
|
||||||
dest.renderSettingsUserRenderMode = src.renderSettingsUserRenderMode;
|
|
||||||
dest.renderSettingsDistanceShadowmask = src.renderSettingsDistanceShadowmask;
|
|
||||||
dest.renderSettingsSettingsMode = src.renderSettingsSettingsMode;
|
|
||||||
dest.renderSettingsFixSeams = src.renderSettingsFixSeams;
|
|
||||||
dest.renderSettingsDenoise = src.renderSettingsDenoise;
|
|
||||||
dest.renderSettingsDenoise2x = src.renderSettingsDenoise2x;
|
|
||||||
dest.renderSettingsEncode = src.renderSettingsEncode;
|
|
||||||
dest.renderSettingsEncodeMode = src.renderSettingsEncodeMode;
|
|
||||||
dest.renderSettingsOverwriteWarning = src.renderSettingsOverwriteWarning;
|
|
||||||
dest.renderSettingsAutoAtlas = src.renderSettingsAutoAtlas;
|
|
||||||
dest.renderSettingsUnwrapUVs = src.renderSettingsUnwrapUVs;
|
|
||||||
dest.renderSettingsForceDisableUnwrapUVs = src.renderSettingsForceDisableUnwrapUVs;
|
|
||||||
dest.renderSettingsMaxAutoResolution = src.renderSettingsMaxAutoResolution;
|
|
||||||
dest.renderSettingsMinAutoResolution = src.renderSettingsMinAutoResolution;
|
|
||||||
dest.renderSettingsUnloadScenes = src.renderSettingsUnloadScenes;
|
|
||||||
dest.renderSettingsAdjustSamples = src.renderSettingsAdjustSamples;
|
|
||||||
dest.renderSettingsGILODMode = src.renderSettingsGILODMode;
|
|
||||||
dest.renderSettingsGILODModeEnabled = src.renderSettingsGILODModeEnabled;
|
|
||||||
dest.renderSettingsCheckOverlaps = src.renderSettingsCheckOverlaps;
|
|
||||||
dest.renderSettingsSkipOutOfBoundsUVs = src.renderSettingsSkipOutOfBoundsUVs;
|
|
||||||
dest.renderSettingsHackEmissiveBoost = src.renderSettingsHackEmissiveBoost;
|
|
||||||
dest.renderSettingsHackIndirectBoost = src.renderSettingsHackIndirectBoost;
|
|
||||||
dest.renderSettingsTempPath = src.renderSettingsTempPath;
|
|
||||||
dest.renderSettingsOutPath = src.renderSettingsOutPath;
|
|
||||||
dest.renderSettingsUseScenePath = src.renderSettingsUseScenePath;
|
|
||||||
dest.renderSettingsHackAOIntensity = src.renderSettingsHackAOIntensity;
|
|
||||||
dest.renderSettingsHackAOSamples = src.renderSettingsHackAOSamples;
|
|
||||||
dest.renderSettingsHackAORadius = src.renderSettingsHackAORadius;
|
|
||||||
dest.renderSettingsShowAOSettings = src.renderSettingsShowAOSettings;
|
|
||||||
dest.renderSettingsShowTasks = src.renderSettingsShowTasks;
|
|
||||||
dest.renderSettingsShowTasks2 = src.renderSettingsShowTasks2;
|
|
||||||
dest.renderSettingsShowPaths = src.renderSettingsShowPaths;
|
|
||||||
dest.renderSettingsShowNet = src.renderSettingsShowNet;
|
|
||||||
dest.renderSettingsOcclusionProbes = src.renderSettingsOcclusionProbes;
|
|
||||||
dest.renderSettingsTexelsPerMap = src.renderSettingsTexelsPerMap;
|
|
||||||
dest.renderSettingsTexelsColor = src.renderSettingsTexelsColor;
|
|
||||||
dest.renderSettingsTexelsMask = src.renderSettingsTexelsMask;
|
|
||||||
dest.renderSettingsTexelsDir = src.renderSettingsTexelsDir;
|
|
||||||
dest.renderSettingsShowDirWarning = src.renderSettingsShowDirWarning;
|
|
||||||
dest.renderSettingsRenderDirMode = src.renderSettingsRenderDirMode;
|
|
||||||
dest.renderSettingsShowCheckerSettings = src.renderSettingsShowCheckerSettings;
|
|
||||||
dest.renderSettingsSamplesWarning = src.renderSettingsSamplesWarning;
|
|
||||||
dest.renderSettingsPrefabWarning = src.renderSettingsPrefabWarning;
|
|
||||||
dest.renderSettingsSplitByScene = src.renderSettingsSplitByScene;
|
|
||||||
dest.renderSettingsUVPaddingMax = src.renderSettingsUVPaddingMax;
|
|
||||||
dest.renderSettingsPostPacking = src.renderSettingsPostPacking;
|
|
||||||
dest.renderSettingsHoleFilling = src.renderSettingsHoleFilling;
|
|
||||||
dest.renderSettingsBeepOnFinish = src.renderSettingsBeepOnFinish;
|
|
||||||
dest.renderSettingsExportTerrainAsHeightmap = src.renderSettingsExportTerrainAsHeightmap;
|
|
||||||
dest.renderSettingsRTXMode = src.renderSettingsRTXMode;
|
|
||||||
dest.renderSettingsLightProbeMode = src.renderSettingsLightProbeMode;
|
|
||||||
dest.renderSettingsClientMode = src.renderSettingsClientMode;
|
|
||||||
dest.renderSettingsServerAddress = src.renderSettingsServerAddress;
|
|
||||||
dest.renderSettingsUnwrapper = src.renderSettingsUnwrapper;
|
|
||||||
dest.renderSettingsDenoiserType = src.renderSettingsDenoiserType;
|
|
||||||
dest.renderSettingsExportTerrainTrees = src.renderSettingsExportTerrainTrees;
|
|
||||||
dest.renderSettingsSampleDiv = src.renderSettingsSampleDiv;
|
|
||||||
dest.renderSettingsAutoAtlas = src.renderSettingsAutoAtlas;
|
|
||||||
dest.renderSettingsBatchPoints = src.renderSettingsBatchPoints;
|
|
||||||
dest.renderSettingsRTPVExport = src.renderSettingsRTPVExport;
|
|
||||||
dest.renderSettingsRTPVSceneView = src.renderSettingsRTPVSceneView;
|
|
||||||
dest.renderSettingsRTPVWidth = src.renderSettingsRTPVWidth;
|
|
||||||
dest.renderSettingsRTPVHeight = src.renderSettingsRTPVHeight;
|
|
||||||
dest.renderSettingsAtlasPacker = src.renderSettingsAtlasPacker;
|
|
||||||
dest.renderSettingsShowPerf = src.renderSettingsShowPerf;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void CopySettings(ftLightmapsStorage src, ftGlobalStorage dest)
|
|
||||||
{
|
|
||||||
dest.renderSettingsBounces = src.renderSettingsBounces;
|
|
||||||
dest.renderSettingsGISamples = src.renderSettingsGISamples;
|
|
||||||
dest.renderSettingsGIBackFaceWeight = src.renderSettingsGIBackFaceWeight;
|
|
||||||
dest.renderSettingsTileSize = src.renderSettingsTileSize;
|
|
||||||
dest.renderSettingsPriority = src.renderSettingsPriority;
|
|
||||||
dest.renderSettingsTexelsPerUnit = src.renderSettingsTexelsPerUnit;
|
|
||||||
dest.renderSettingsForceRefresh = src.renderSettingsForceRefresh;
|
|
||||||
dest.renderSettingsForceRebuildGeometry = src.renderSettingsForceRebuildGeometry;
|
|
||||||
dest.renderSettingsPerformRendering = src.renderSettingsPerformRendering;
|
|
||||||
dest.renderSettingsUserRenderMode = src.renderSettingsUserRenderMode;
|
|
||||||
dest.renderSettingsDistanceShadowmask = src.renderSettingsDistanceShadowmask;
|
|
||||||
dest.renderSettingsSettingsMode = src.renderSettingsSettingsMode;
|
|
||||||
dest.renderSettingsFixSeams = src.renderSettingsFixSeams;
|
|
||||||
dest.renderSettingsDenoise = src.renderSettingsDenoise;
|
|
||||||
dest.renderSettingsDenoise2x = src.renderSettingsDenoise2x;
|
|
||||||
dest.renderSettingsEncode = src.renderSettingsEncode;
|
|
||||||
dest.renderSettingsEncodeMode = src.renderSettingsEncodeMode;
|
|
||||||
dest.renderSettingsOverwriteWarning = src.renderSettingsOverwriteWarning;
|
|
||||||
dest.renderSettingsAutoAtlas = src.renderSettingsAutoAtlas;
|
|
||||||
dest.renderSettingsUnwrapUVs = src.renderSettingsUnwrapUVs;
|
|
||||||
dest.renderSettingsForceDisableUnwrapUVs = src.renderSettingsForceDisableUnwrapUVs;
|
|
||||||
dest.renderSettingsMaxAutoResolution = src.renderSettingsMaxAutoResolution;
|
|
||||||
dest.renderSettingsMinAutoResolution = src.renderSettingsMinAutoResolution;
|
|
||||||
dest.renderSettingsUnloadScenes = src.renderSettingsUnloadScenes;
|
|
||||||
dest.renderSettingsAdjustSamples = src.renderSettingsAdjustSamples;
|
|
||||||
dest.renderSettingsGILODMode = src.renderSettingsGILODMode;
|
|
||||||
dest.renderSettingsGILODModeEnabled = src.renderSettingsGILODModeEnabled;
|
|
||||||
dest.renderSettingsCheckOverlaps = src.renderSettingsCheckOverlaps;
|
|
||||||
dest.renderSettingsSkipOutOfBoundsUVs = src.renderSettingsSkipOutOfBoundsUVs;
|
|
||||||
dest.renderSettingsHackEmissiveBoost = src.renderSettingsHackEmissiveBoost;
|
|
||||||
dest.renderSettingsHackIndirectBoost = src.renderSettingsHackIndirectBoost;
|
|
||||||
dest.renderSettingsTempPath = src.renderSettingsTempPath;
|
|
||||||
dest.renderSettingsOutPath = src.renderSettingsOutPath;
|
|
||||||
dest.renderSettingsUseScenePath = src.renderSettingsUseScenePath;
|
|
||||||
dest.renderSettingsHackAOIntensity = src.renderSettingsHackAOIntensity;
|
|
||||||
dest.renderSettingsHackAOSamples = src.renderSettingsHackAOSamples;
|
|
||||||
dest.renderSettingsHackAORadius = src.renderSettingsHackAORadius;
|
|
||||||
dest.renderSettingsShowAOSettings = src.renderSettingsShowAOSettings;
|
|
||||||
dest.renderSettingsShowTasks = src.renderSettingsShowTasks;
|
|
||||||
dest.renderSettingsShowTasks2 = src.renderSettingsShowTasks2;
|
|
||||||
dest.renderSettingsShowPaths = src.renderSettingsShowPaths;
|
|
||||||
dest.renderSettingsShowNet = src.renderSettingsShowNet;
|
|
||||||
dest.renderSettingsOcclusionProbes = src.renderSettingsOcclusionProbes;
|
|
||||||
dest.renderSettingsTexelsPerMap = src.renderSettingsTexelsPerMap;
|
|
||||||
dest.renderSettingsTexelsColor = src.renderSettingsTexelsColor;
|
|
||||||
dest.renderSettingsTexelsMask = src.renderSettingsTexelsMask;
|
|
||||||
dest.renderSettingsTexelsDir = src.renderSettingsTexelsDir;
|
|
||||||
dest.renderSettingsShowDirWarning = src.renderSettingsShowDirWarning;
|
|
||||||
dest.renderSettingsRenderDirMode = src.renderSettingsRenderDirMode;
|
|
||||||
dest.renderSettingsShowCheckerSettings = src.renderSettingsShowCheckerSettings;
|
|
||||||
dest.renderSettingsSamplesWarning = src.renderSettingsSamplesWarning;
|
|
||||||
dest.renderSettingsPrefabWarning = src.renderSettingsPrefabWarning;
|
|
||||||
dest.renderSettingsSplitByScene = src.renderSettingsSplitByScene;
|
|
||||||
dest.renderSettingsUVPaddingMax = src.renderSettingsUVPaddingMax;
|
|
||||||
dest.renderSettingsPostPacking = src.renderSettingsPostPacking;
|
|
||||||
dest.renderSettingsHoleFilling = src.renderSettingsHoleFilling;
|
|
||||||
dest.renderSettingsBeepOnFinish = src.renderSettingsBeepOnFinish;
|
|
||||||
dest.renderSettingsExportTerrainAsHeightmap = src.renderSettingsExportTerrainAsHeightmap;
|
|
||||||
dest.renderSettingsRTXMode = src.renderSettingsRTXMode;
|
|
||||||
dest.renderSettingsLightProbeMode = src.renderSettingsLightProbeMode;
|
|
||||||
dest.renderSettingsClientMode = src.renderSettingsClientMode;
|
|
||||||
dest.renderSettingsServerAddress = src.renderSettingsServerAddress;
|
|
||||||
dest.renderSettingsUnwrapper = src.renderSettingsUnwrapper;
|
|
||||||
dest.renderSettingsDenoiserType = src.renderSettingsDenoiserType;
|
|
||||||
dest.renderSettingsExportTerrainTrees = src.renderSettingsExportTerrainTrees;
|
|
||||||
dest.renderSettingsShowPerf = src.renderSettingsShowPerf;
|
|
||||||
dest.renderSettingsSampleDiv = src.renderSettingsSampleDiv;
|
|
||||||
dest.renderSettingsBatchPoints = src.renderSettingsBatchPoints;
|
|
||||||
dest.renderSettingsRTPVExport = src.renderSettingsRTPVExport;
|
|
||||||
dest.renderSettingsRTPVSceneView = src.renderSettingsRTPVSceneView;
|
|
||||||
dest.renderSettingsRTPVWidth = src.renderSettingsRTPVWidth;
|
|
||||||
dest.renderSettingsRTPVHeight = src.renderSettingsRTPVHeight;
|
|
||||||
dest.renderSettingsAtlasPacker = src.renderSettingsAtlasPacker;
|
|
||||||
dest.renderSettingsAutoAtlas = src.renderSettingsAutoAtlas;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void CopySettings(ftGlobalStorage src, ftLightmapsStorage dest)
|
|
||||||
{
|
|
||||||
dest.renderSettingsBounces = src.renderSettingsBounces;
|
|
||||||
dest.renderSettingsGISamples = src.renderSettingsGISamples;
|
|
||||||
dest.renderSettingsGIBackFaceWeight = src.renderSettingsGIBackFaceWeight;
|
|
||||||
dest.renderSettingsTileSize = src.renderSettingsTileSize;
|
|
||||||
dest.renderSettingsPriority = src.renderSettingsPriority;
|
|
||||||
dest.renderSettingsTexelsPerUnit = src.renderSettingsTexelsPerUnit;
|
|
||||||
dest.renderSettingsForceRefresh = src.renderSettingsForceRefresh;
|
|
||||||
dest.renderSettingsForceRebuildGeometry = src.renderSettingsForceRebuildGeometry;
|
|
||||||
dest.renderSettingsPerformRendering = src.renderSettingsPerformRendering;
|
|
||||||
dest.renderSettingsUserRenderMode = src.renderSettingsUserRenderMode;
|
|
||||||
dest.renderSettingsDistanceShadowmask = src.renderSettingsDistanceShadowmask;
|
|
||||||
dest.renderSettingsSettingsMode = src.renderSettingsSettingsMode;
|
|
||||||
dest.renderSettingsFixSeams = src.renderSettingsFixSeams;
|
|
||||||
dest.renderSettingsDenoise = src.renderSettingsDenoise;
|
|
||||||
dest.renderSettingsDenoise2x = src.renderSettingsDenoise2x;
|
|
||||||
dest.renderSettingsEncode = src.renderSettingsEncode;
|
|
||||||
dest.renderSettingsEncodeMode = src.renderSettingsEncodeMode;
|
|
||||||
dest.renderSettingsOverwriteWarning = src.renderSettingsOverwriteWarning;
|
|
||||||
dest.renderSettingsAutoAtlas = src.renderSettingsAutoAtlas;
|
|
||||||
dest.renderSettingsUnwrapUVs = src.renderSettingsUnwrapUVs;
|
|
||||||
dest.renderSettingsForceDisableUnwrapUVs = src.renderSettingsForceDisableUnwrapUVs;
|
|
||||||
dest.renderSettingsMaxAutoResolution = src.renderSettingsMaxAutoResolution;
|
|
||||||
dest.renderSettingsMinAutoResolution = src.renderSettingsMinAutoResolution;
|
|
||||||
dest.renderSettingsUnloadScenes = src.renderSettingsUnloadScenes;
|
|
||||||
dest.renderSettingsAdjustSamples = src.renderSettingsAdjustSamples;
|
|
||||||
dest.renderSettingsGILODMode = src.renderSettingsGILODMode;
|
|
||||||
dest.renderSettingsGILODModeEnabled = src.renderSettingsGILODModeEnabled;
|
|
||||||
dest.renderSettingsCheckOverlaps = src.renderSettingsCheckOverlaps;
|
|
||||||
dest.renderSettingsSkipOutOfBoundsUVs = src.renderSettingsSkipOutOfBoundsUVs;
|
|
||||||
dest.renderSettingsHackEmissiveBoost = src.renderSettingsHackEmissiveBoost;
|
|
||||||
dest.renderSettingsHackIndirectBoost = src.renderSettingsHackIndirectBoost;
|
|
||||||
dest.renderSettingsTempPath = src.renderSettingsTempPath;
|
|
||||||
dest.renderSettingsOutPath = src.renderSettingsOutPath;
|
|
||||||
dest.renderSettingsUseScenePath = src.renderSettingsUseScenePath;
|
|
||||||
dest.renderSettingsHackAOIntensity = src.renderSettingsHackAOIntensity;
|
|
||||||
dest.renderSettingsHackAOSamples = src.renderSettingsHackAOSamples;
|
|
||||||
dest.renderSettingsHackAORadius = src.renderSettingsHackAORadius;
|
|
||||||
dest.renderSettingsShowAOSettings = src.renderSettingsShowAOSettings;
|
|
||||||
dest.renderSettingsShowTasks = src.renderSettingsShowTasks;
|
|
||||||
dest.renderSettingsShowTasks2 = src.renderSettingsShowTasks2;
|
|
||||||
dest.renderSettingsShowPaths = src.renderSettingsShowPaths;
|
|
||||||
dest.renderSettingsShowNet = src.renderSettingsShowNet;
|
|
||||||
dest.renderSettingsOcclusionProbes = src.renderSettingsOcclusionProbes;
|
|
||||||
dest.renderSettingsTexelsPerMap = src.renderSettingsTexelsPerMap;
|
|
||||||
dest.renderSettingsTexelsColor = src.renderSettingsTexelsColor;
|
|
||||||
dest.renderSettingsTexelsMask = src.renderSettingsTexelsMask;
|
|
||||||
dest.renderSettingsTexelsDir = src.renderSettingsTexelsDir;
|
|
||||||
dest.renderSettingsShowDirWarning = src.renderSettingsShowDirWarning;
|
|
||||||
dest.renderSettingsRenderDirMode = src.renderSettingsRenderDirMode;
|
|
||||||
dest.renderSettingsShowCheckerSettings = src.renderSettingsShowCheckerSettings;
|
|
||||||
dest.renderSettingsSamplesWarning = src.renderSettingsSamplesWarning;
|
|
||||||
dest.renderSettingsPrefabWarning = src.renderSettingsPrefabWarning;
|
|
||||||
dest.renderSettingsSplitByScene = src.renderSettingsSplitByScene;
|
|
||||||
dest.renderSettingsUVPaddingMax = src.renderSettingsUVPaddingMax;
|
|
||||||
dest.renderSettingsPostPacking = src.renderSettingsPostPacking;
|
|
||||||
dest.renderSettingsHoleFilling = src.renderSettingsHoleFilling;
|
|
||||||
dest.renderSettingsBeepOnFinish = src.renderSettingsBeepOnFinish;
|
|
||||||
dest.renderSettingsExportTerrainAsHeightmap = src.renderSettingsExportTerrainAsHeightmap;
|
|
||||||
dest.renderSettingsRTXMode = src.renderSettingsRTXMode;
|
|
||||||
dest.renderSettingsLightProbeMode = src.renderSettingsLightProbeMode;
|
|
||||||
dest.renderSettingsClientMode = src.renderSettingsClientMode;
|
|
||||||
dest.renderSettingsServerAddress = src.renderSettingsServerAddress;
|
|
||||||
dest.renderSettingsUnwrapper = src.renderSettingsUnwrapper;
|
|
||||||
dest.renderSettingsDenoiserType = src.renderSettingsDenoiserType;
|
|
||||||
dest.renderSettingsExportTerrainTrees = src.renderSettingsExportTerrainTrees;
|
|
||||||
dest.renderSettingsShowPerf = src.renderSettingsShowPerf;
|
|
||||||
dest.renderSettingsSampleDiv = src.renderSettingsSampleDiv;
|
|
||||||
dest.renderSettingsBatchPoints = src.renderSettingsBatchPoints;
|
|
||||||
dest.renderSettingsRTPVExport = src.renderSettingsRTPVExport;
|
|
||||||
dest.renderSettingsRTPVSceneView = src.renderSettingsRTPVSceneView;
|
|
||||||
dest.renderSettingsRTPVWidth = src.renderSettingsRTPVWidth;
|
|
||||||
dest.renderSettingsRTPVHeight = src.renderSettingsRTPVHeight;
|
|
||||||
dest.renderSettingsAtlasPacker = src.renderSettingsAtlasPacker;
|
|
||||||
dest.renderSettingsAutoAtlas = src.renderSettingsAutoAtlas;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// List of baked lightmaps
|
|
||||||
public List<Texture2D> maps = new List<Texture2D>();
|
|
||||||
public List<Texture2D> masks = new List<Texture2D>();
|
|
||||||
public List<Texture2D> dirMaps = new List<Texture2D>();
|
|
||||||
public List<Texture2D> rnmMaps0 = new List<Texture2D>();
|
|
||||||
public List<Texture2D> rnmMaps1 = new List<Texture2D>();
|
|
||||||
public List<Texture2D> rnmMaps2 = new List<Texture2D>();
|
|
||||||
public List<int> mapsMode = new List<int>();
|
|
||||||
|
|
||||||
// new props
|
|
||||||
public List<Renderer> bakedRenderers = new List<Renderer>();
|
|
||||||
public List<int> bakedIDs = new List<int>();
|
|
||||||
public List<Vector4> bakedScaleOffset = new List<Vector4>();
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
public List<int> bakedVertexOffset = new List<int>();
|
|
||||||
#endif
|
|
||||||
public List<Mesh> bakedVertexColorMesh = new List<Mesh>();
|
|
||||||
|
|
||||||
public List<Renderer> nonBakedRenderers = new List<Renderer>();
|
|
||||||
|
|
||||||
public List<Light> bakedLights = new List<Light>();
|
|
||||||
public List<int> bakedLightChannels = new List<int>();
|
|
||||||
|
|
||||||
public List<Terrain> bakedRenderersTerrain = new List<Terrain>();
|
|
||||||
public List<int> bakedIDsTerrain = new List<int>();
|
|
||||||
public List<Vector4> bakedScaleOffsetTerrain = new List<Vector4>();
|
|
||||||
|
|
||||||
public List<string> assetList = new List<string>();
|
|
||||||
public List<int> uvOverlapAssetList = new List<int>(); // -1 = no UV1, 0 = no overlap, 1 = overlap
|
|
||||||
|
|
||||||
public int[] idremap;
|
|
||||||
|
|
||||||
public bool usesRealtimeGI;
|
|
||||||
|
|
||||||
public Texture2D emptyDirectionTex;
|
|
||||||
|
|
||||||
void Awake()
|
|
||||||
{
|
|
||||||
ftLightmaps.RefreshScene(gameObject.scene, this);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Start()
|
|
||||||
{
|
|
||||||
// Unity can for some reason alter lightmapIndex after the scene is loaded in a multi-scene setup, so fix that
|
|
||||||
ftLightmaps.RefreshScene2(gameObject.scene, this);//, appendOffset);
|
|
||||||
}
|
|
||||||
|
|
||||||
void OnDestroy()
|
|
||||||
{
|
|
||||||
ftLightmaps.UnloadScene(this);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,12 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: b7fa80e7116296f4eb4f49ec1544ee22
|
|
||||||
timeCreated: 1533932932
|
|
||||||
licenseType: Store
|
|
||||||
MonoImporter:
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,105 +0,0 @@
|
|||||||
%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: 05ca84e725c7c764aa5ed097918d14b7, type: 3}
|
|
||||||
m_Name: ftLocalStorage
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
modifiedAssetPathList:
|
|
||||||
- Assets/Bakery/examples/content/sponza/sponza.FBX
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-10.blend
|
|
||||||
- Assets/Models/Delta_Building_Model_Old.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-07.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/EM-18.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-09.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-18.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-03.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-02.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-01.1.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-04K.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/Monitor.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-26.4.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-11T.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-39.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-17.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-19.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-41.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-11.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-01.2.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-16.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/PC.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-62.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-05.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-01.3.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-11.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/Toilet.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-32.blend
|
|
||||||
- Assets/Models/Ceiling light CGVR.fbx
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-48.1_small.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-04.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-48.1.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-28.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-11_v2.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-08.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-47.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/Monitor_alone.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/m-13.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-24.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-08.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-63.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/Chair.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-16.1.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-54.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-09.1.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-38.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-25.blend
|
|
||||||
- Assets/Models/Furniture/Imported_Models/Indoor plant 3/Low-Poly Plant_.3ds
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-30.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-26.3.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-22.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/Kitchen_sink left.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/Kitchen_small_sink.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-04.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-51.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-12.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/EM-14.1.blend
|
|
||||||
- Assets/Models/trash_bin.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-14.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-16.2.blend
|
|
||||||
- Assets/Models/Outside/StreetLamp_Small.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-15.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-26.2.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-15.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-09.2.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-70.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-31.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-05.02.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/Kitchen_sink 2.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-25.01.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-32.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/Sink.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-05.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/Sink_small.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/Counter_table.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-23.blend
|
|
||||||
- Assets/Models/Outside/BikeStop.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/M-27.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-10.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/EM-19.2.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-06.blend
|
|
||||||
- Assets/Models/Green_stairs.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-2.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/EM-19.1.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/Admin_EM-01.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/M-20.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/Tile.blend
|
|
||||||
- Assets/Models/Furniture/Kristo_s_Models/EM-26.1.blend
|
|
||||||
- Assets/Models/Furniture/Aleksandra_s_Models/EM-14.2.blend
|
|
||||||
modifiedAssetPaddingHash: aaf8cc2efd7d936324c96996fa4dfff056f23a06323b8033bb7d936397c6d890f437ed04b74608c8b94608c8d05634b7b4c2a693f927c1150ca3ddded0c124910ca3ddde09a3dddef727c115b74608c8ecc124910ba3dddeffb209cef727c11556f23a06da7d9363b84608c8f827c115b35634b78cdb894bbb4608c8c04dfff0f327c1157e4dfff0323b8033d74608c802b309cecec124910ca3ddde97c6d890f927c115ef37ed0400b309cebb09ecc0b45634b79f398033ea32a0cdf327c115b05634b78c67e2a875f23a069f3980330cf43a061067e2a81067e2a89d4dfff0344ffff023c5d890275031eeffb209ceda7d9363d7c2a693f83980335d398033f527c115907f9363ad5634b7194efff004c5d89075f23a06c34608c898f23a06bb09ecc0f827c1157c3980332009ecc0fea8391419c2a693194efff0e55031eed7c2a69314f33a06d2f23a064adc894bf1f23a069f398033c2c4d8908c67e2a8fd7d9363
|
|
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 06ef8f61bc3d70a4888cb079d7df1042
|
|
||||||
timeCreated: 1606240293
|
|
||||||
licenseType: Store
|
|
||||||
NativeFormatImporter:
|
|
||||||
mainObjectFileID: 11400000
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,16 +0,0 @@
|
|||||||
using UnityEngine;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
using UnityEditor;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
public class ftLocalStorage : ScriptableObject
|
|
||||||
{
|
|
||||||
[SerializeField]
|
|
||||||
public List<string> modifiedAssetPathList = new List<string>(); // marks model as processed
|
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
public List<int> modifiedAssetPaddingHash = new List<int>();
|
|
||||||
}
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 05ca84e725c7c764aa5ed097918d14b7
|
|
||||||
timeCreated: 1536868109
|
|
||||||
licenseType: Store
|
|
||||||
MonoImporter:
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,54 +0,0 @@
|
|||||||
Shader "Hidden/ftMultiply"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
_MainTex ("Texture", 2D) = "white" {}
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
// No culling or depth
|
|
||||||
Cull Off ZWrite Off ZTest Always
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
};
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = v.uv;
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
float multiplier;
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
float4 color = tex2D(_MainTex, i.uv);
|
|
||||||
color.rgb *= multiplier;
|
|
||||||
|
|
||||||
return color;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: ca0c6046e6cde2d4391e91bbffb3e915
|
|
||||||
timeCreated: 1534245696
|
|
||||||
licenseType: Store
|
|
||||||
ShaderImporter:
|
|
||||||
defaultTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,49 +0,0 @@
|
|||||||
Shader "Hidden/ftOverlapTest"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
_MainTex ("Texture", 2D) = "white" {}
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
// No culling or depth
|
|
||||||
Cull Off ZWrite Off ZTest Always
|
|
||||||
Blend One One
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
|
|
||||||
float uvSet;
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float2 uv0 : TEXCOORD0;
|
|
||||||
float2 uv1 : TEXCOORD1;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
};
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
float2 uv = uvSet > 0.0f ? v.uv1 : v.uv0;
|
|
||||||
o.vertex = float4(uv*2-1, 0.5, 1);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
return float4(1,1,1,1) * (1.0f / 255.0f);
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 20cf64477973022498e44b932e804288
|
|
||||||
timeCreated: 1528974529
|
|
||||||
licenseType: Store
|
|
||||||
ShaderImporter:
|
|
||||||
defaultTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,51 +0,0 @@
|
|||||||
Shader "Hidden/ftRGBM2Half"
|
|
||||||
{
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
// No culling or depth
|
|
||||||
Cull Off ZWrite Off ZTest Always
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
};
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
#if UNITY_UV_STARTS_AT_TOP
|
|
||||||
o.uv = v.uv;
|
|
||||||
#else
|
|
||||||
o.uv = v.uv;
|
|
||||||
o.uv.y = 1-o.uv.y;
|
|
||||||
#endif
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
float4 c = tex2D(_MainTex, i.uv);
|
|
||||||
return float4(c.rgb * c.a * EMISSIVE_RGBM_SCALE, 1.0);
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: b7246420d3e29ae429fc3827a1abc1e6
|
|
||||||
timeCreated: 1533755707
|
|
||||||
licenseType: Store
|
|
||||||
ShaderImporter:
|
|
||||||
defaultTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,92 +0,0 @@
|
|||||||
Shader "Bakery/Simple Vertex Lightmapped"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
_MainTex ("Texture", 2D) = "white" {}
|
|
||||||
_Color ("Color", Color) = (1,1,1,1)
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "RenderType"="Opaque" }
|
|
||||||
LOD 100
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
// make fog work
|
|
||||||
#pragma multi_compile_fog
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
|
|
||||||
struct appdata
|
|
||||||
{
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float4 color : COLOR0;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f
|
|
||||||
{
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
UNITY_FOG_COORDS(1)
|
|
||||||
float3 color : TEXCOORD2;
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
};
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
float4 _MainTex_ST;
|
|
||||||
float3 _Color;
|
|
||||||
|
|
||||||
v2f vert (appdata v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
||||||
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
|
|
||||||
UNITY_TRANSFER_FOG(o,o.vertex);
|
|
||||||
|
|
||||||
// Decode baked HDR vertex color (RGBM)
|
|
||||||
o.color = v.color.rgb * v.color.a * 8.0;
|
|
||||||
o.color *= o.color;
|
|
||||||
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
float4 color = tex2D(_MainTex, i.uv);
|
|
||||||
color.rgb *= _Color;
|
|
||||||
|
|
||||||
// Apply vertex lightmap
|
|
||||||
color.rgb *= i.color;
|
|
||||||
|
|
||||||
UNITY_APPLY_FOG(i.fogCoord, color);
|
|
||||||
return color;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
Name "META"
|
|
||||||
Tags {"LightMode"="Meta"}
|
|
||||||
Cull Off
|
|
||||||
CGPROGRAM
|
|
||||||
|
|
||||||
#include"UnityStandardMeta.cginc"
|
|
||||||
|
|
||||||
float4 frag_meta2 (v2f_meta i): SV_Target
|
|
||||||
{
|
|
||||||
UnityMetaInput o;
|
|
||||||
UNITY_INITIALIZE_OUTPUT(UnityMetaInput, o);
|
|
||||||
o.Albedo = tex2D(_MainTex, i.uv) * _Color;
|
|
||||||
return UnityMetaFragment(o);
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma vertex vert_meta
|
|
||||||
#pragma fragment frag_meta2
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 06b4ed554edfece43b570527a652d54e
|
|
||||||
timeCreated: 1533631323
|
|
||||||
licenseType: Store
|
|
||||||
ShaderImporter:
|
|
||||||
defaultTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,78 +0,0 @@
|
|||||||
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
|
|
||||||
|
|
||||||
Shader "Bakery/Skybox" {
|
|
||||||
Properties {
|
|
||||||
_Tint ("Tint Color", Color) = (.5, .5, .5, .5)
|
|
||||||
_Exposure ("Exposure", Float) = 1.0
|
|
||||||
_MatrixRight ("Right", Vector) = (1, 0, 0, 0)
|
|
||||||
_MatrixUp ("Up", Vector) = (0, 1, 0, 0)
|
|
||||||
_MatrixForward ("Forward", Vector) = (0, 0, 1, 0)
|
|
||||||
[NoScaleOffset] _Tex ("Cubemap (HDR)", Cube) = "white" {}
|
|
||||||
_NoTexture ("No texture", Float) = 0.0
|
|
||||||
_Hemispherical ("Hemispherical", Float) = 0.0
|
|
||||||
}
|
|
||||||
|
|
||||||
SubShader {
|
|
||||||
Tags { "Queue"="Background" "RenderType"="Background" "PreviewType"="Skybox" }
|
|
||||||
Cull Off ZWrite Off
|
|
||||||
|
|
||||||
Pass {
|
|
||||||
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert
|
|
||||||
#pragma fragment frag
|
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
|
|
||||||
samplerCUBE _Tex;
|
|
||||||
half4 _Tex_HDR;
|
|
||||||
half4 _Tint;
|
|
||||||
half _Exposure;
|
|
||||||
float3 _MatrixRight, _MatrixUp, _MatrixForward;
|
|
||||||
float4x4 reflection2World;
|
|
||||||
float _NoTexture, _Hemispherical;
|
|
||||||
|
|
||||||
struct appdata_t {
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
|
||||||
};
|
|
||||||
|
|
||||||
struct v2f {
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
float3 texcoord : TEXCOORD0;
|
|
||||||
UNITY_VERTEX_OUTPUT_STEREO
|
|
||||||
};
|
|
||||||
|
|
||||||
v2f vert (appdata_t v)
|
|
||||||
{
|
|
||||||
v2f o;
|
|
||||||
UNITY_SETUP_INSTANCE_ID(v);
|
|
||||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
|
|
||||||
float3x3 tform = float3x3(_MatrixRight, _MatrixUp, _MatrixForward);
|
|
||||||
float3 pos = mul(tform, v.vertex.xyz);
|
|
||||||
o.vertex = UnityObjectToClipPos(pos);
|
|
||||||
o.texcoord = mul((float3x3)reflection2World, v.vertex.xyz);
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
fixed4 frag (v2f i) : SV_Target
|
|
||||||
{
|
|
||||||
half4 tex = _NoTexture < 0.5 ? texCUBE (_Tex, i.texcoord) : half4(1,1,1,1);
|
|
||||||
half3 c = DecodeHDR (tex, _Tex_HDR);
|
|
||||||
if (unity_ColorSpaceDouble.x < 3) c = pow(c, 2.2f);
|
|
||||||
c = c * _Tint.rgb;
|
|
||||||
c *= _Exposure;
|
|
||||||
|
|
||||||
if (_Hemispherical > 0.0f) c *= i.texcoord.y < 0 ? 0 : 1;
|
|
||||||
if (unity_ColorSpaceDouble.x < 3) c = pow(c, 1/2.2f);
|
|
||||||
|
|
||||||
return half4(c, 1);
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Fallback Off
|
|
||||||
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 8dd49cd8305cbae4f8c358c16965dbba
|
|
||||||
timeCreated: 1526849323
|
|
||||||
licenseType: Store
|
|
||||||
ShaderImporter:
|
|
||||||
defaultTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,85 +0,0 @@
|
|||||||
Shader "Hidden/ftUVNormalMap"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
_BumpMap ("Normal map", 2D) = "bump" { }
|
|
||||||
bestFitNormalMap ("Best fit normals texture", 2D) = "white" { }
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
//Name "META"
|
|
||||||
//Tags {"LightMode"="Meta"}
|
|
||||||
Cull Off
|
|
||||||
CGPROGRAM
|
|
||||||
|
|
||||||
#define _TANGENT_TO_WORLD
|
|
||||||
#define UNITY_PASS_META
|
|
||||||
#include "UnityStandardMeta.cginc"
|
|
||||||
|
|
||||||
Texture2D bestFitNormalMap;
|
|
||||||
//sampler2D _BumpMap;
|
|
||||||
float4 _BumpMap_scaleOffset;
|
|
||||||
float _IsTerrain;
|
|
||||||
|
|
||||||
struct v2f_meta2
|
|
||||||
{
|
|
||||||
float4 pos : SV_POSITION;
|
|
||||||
float2 uv : TEXCOORD0;
|
|
||||||
float3 normal : TEXCOORD1;
|
|
||||||
float3 tangent : TEXCOORD2;
|
|
||||||
float3 binormal : TEXCOORD3;
|
|
||||||
};
|
|
||||||
|
|
||||||
v2f_meta2 vert_meta2 (VertexInput v)
|
|
||||||
{
|
|
||||||
v2f_meta2 o;
|
|
||||||
o.pos = float4(((v.uv1.xy * unity_LightmapST.xy + unity_LightmapST.zw)*2-1) * float2(1,-1), 0.5, 1);
|
|
||||||
// UnityMetaVertexPosition(v.vertex, v.uv1.xy, v.uv2.xy, unity_LightmapST, unity_DynamicLightmapST);
|
|
||||||
o.uv = v.uv0 * _BumpMap_scaleOffset.xy + _BumpMap_scaleOffset.zw;
|
|
||||||
o.normal = normalize(mul((float3x3)unity_ObjectToWorld, v.normal).xyz);
|
|
||||||
|
|
||||||
if (_IsTerrain == 0.0f)
|
|
||||||
{
|
|
||||||
o.tangent = normalize(mul((float3x3)unity_ObjectToWorld, v.tangent.xyz).xyz);
|
|
||||||
o.binormal = cross(o.normal, o.tangent) * v.tangent.w;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
o.tangent = cross(o.normal, float3(0,0,1));
|
|
||||||
o.binormal = cross(o.normal, o.tangent) * -1;
|
|
||||||
}
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
float3 EncodeNormalBestFit(float3 n)
|
|
||||||
{
|
|
||||||
float3 nU = abs(n);
|
|
||||||
float maxNAbs = max(nU.z, max(nU.x, nU.y));
|
|
||||||
float2 TC = nU.z<maxNAbs? (nU.y<maxNAbs? nU.yz : nU.xz) : nU.xy;
|
|
||||||
//if (TC.x != TC.y)
|
|
||||||
//{
|
|
||||||
TC = TC.x<TC.y? TC.yx : TC.xy;
|
|
||||||
TC.y /= TC.x;
|
|
||||||
|
|
||||||
n /= maxNAbs;
|
|
||||||
float fittingScale = bestFitNormalMap.Load(int3(TC.x*1023, TC.y*1023, 0)).a;
|
|
||||||
n *= fittingScale;
|
|
||||||
//}
|
|
||||||
return n*0.5+0.5;
|
|
||||||
}
|
|
||||||
|
|
||||||
float4 frag_meta2 (v2f_meta2 i): SV_Target
|
|
||||||
{
|
|
||||||
float3 normalMap = UnpackNormal(tex2D(_BumpMap, i.uv));
|
|
||||||
float3 normal = normalize(i.tangent * normalMap.x + i.binormal * normalMap.y + i.normal * normalMap.z);
|
|
||||||
return float4(EncodeNormalBestFit(normal),1);
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma vertex vert_meta2
|
|
||||||
#pragma fragment frag_meta2
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 98e1b190bbdc3a740a9d358c3d446747
|
|
||||||
timeCreated: 1537271568
|
|
||||||
licenseType: Store
|
|
||||||
ShaderImporter:
|
|
||||||
defaultTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,46 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
public static class ftUniqueIDRegistry
|
|
||||||
{
|
|
||||||
public static Dictionary<Int32, Int32> Mapping = new Dictionary<int, int>();
|
|
||||||
public static Dictionary<Int32, Int32> MappingInv = new Dictionary<int, int>();
|
|
||||||
|
|
||||||
public static void Deregister(Int32 id)
|
|
||||||
{
|
|
||||||
int instanceId = GetInstanceId(id);
|
|
||||||
if (instanceId < 0) return;
|
|
||||||
MappingInv.Remove(instanceId);
|
|
||||||
Mapping.Remove(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void Register(Int32 id, Int32 value)
|
|
||||||
{
|
|
||||||
if (!Mapping.ContainsKey(id)) {
|
|
||||||
Mapping[id] = value;
|
|
||||||
MappingInv[value] = id;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Int32 GetInstanceId(Int32 id)
|
|
||||||
{
|
|
||||||
Int32 instanceId;
|
|
||||||
if (!Mapping.TryGetValue(id, out instanceId))
|
|
||||||
{
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return instanceId;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Int32 GetUID(Int32 instanceId)
|
|
||||||
{
|
|
||||||
Int32 result;
|
|
||||||
if (MappingInv.TryGetValue(instanceId, out result)) return result;
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,12 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 823b71f76e7ce5a48a9db822489f7b5d
|
|
||||||
timeCreated: 1496221374
|
|
||||||
licenseType: Store
|
|
||||||
MonoImporter:
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
BIN
Assets/Bakery/ftUnitySpotTexture.bmp
(Stored with Git LFS)
BIN
Assets/Bakery/ftUnitySpotTexture.bmp
(Stored with Git LFS)
Binary file not shown.
@ -1,76 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 3a66602b8cc7fdd4ab57d07b4176432b
|
|
||||||
timeCreated: 1527598735
|
|
||||||
licenseType: Store
|
|
||||||
TextureImporter:
|
|
||||||
fileIDToRecycleName: {}
|
|
||||||
serializedVersion: 4
|
|
||||||
mipmaps:
|
|
||||||
mipMapMode: 0
|
|
||||||
enableMipMap: 1
|
|
||||||
sRGBTexture: 1
|
|
||||||
linearTexture: 0
|
|
||||||
fadeOut: 0
|
|
||||||
borderMipMap: 0
|
|
||||||
mipMapFadeDistanceStart: 1
|
|
||||||
mipMapFadeDistanceEnd: 3
|
|
||||||
bumpmap:
|
|
||||||
convertToNormalMap: 0
|
|
||||||
externalNormalMap: 0
|
|
||||||
heightScale: 0.25
|
|
||||||
normalMapFilter: 0
|
|
||||||
isReadable: 0
|
|
||||||
grayScaleToAlpha: 0
|
|
||||||
generateCubemap: 6
|
|
||||||
cubemapConvolution: 0
|
|
||||||
seamlessCubemap: 0
|
|
||||||
textureFormat: 1
|
|
||||||
maxTextureSize: 2048
|
|
||||||
textureSettings:
|
|
||||||
filterMode: -1
|
|
||||||
aniso: -1
|
|
||||||
mipBias: -1
|
|
||||||
wrapMode: 1
|
|
||||||
nPOTScale: 1
|
|
||||||
lightmap: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
spriteMode: 0
|
|
||||||
spriteExtrude: 1
|
|
||||||
spriteMeshType: 1
|
|
||||||
alignment: 0
|
|
||||||
spritePivot: {x: 0.5, y: 0.5}
|
|
||||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
spritePixelsToUnits: 100
|
|
||||||
alphaUsage: 1
|
|
||||||
alphaIsTransparency: 0
|
|
||||||
spriteTessellationDetail: -1
|
|
||||||
textureType: 0
|
|
||||||
textureShape: 1
|
|
||||||
maxTextureSizeSet: 0
|
|
||||||
compressionQualitySet: 0
|
|
||||||
textureFormatSet: 0
|
|
||||||
platformSettings:
|
|
||||||
- buildTarget: DefaultTexturePlatform
|
|
||||||
maxTextureSize: 2048
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
- buildTarget: Standalone
|
|
||||||
maxTextureSize: 2048
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
spriteSheet:
|
|
||||||
serializedVersion: 2
|
|
||||||
sprites: []
|
|
||||||
outline: []
|
|
||||||
spritePackingTag:
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,80 +0,0 @@
|
|||||||
Shader "Hidden/ftUnlitTerrain"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
_MainTex ("Albedo", 2D) = "white" { }
|
|
||||||
_TerrainHolesTexture("Holes Map (RGB)", 2D) = "white" {}
|
|
||||||
}
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
Name "META"
|
|
||||||
Tags {"LightMode"="Meta"}
|
|
||||||
Cull Off
|
|
||||||
CGPROGRAM
|
|
||||||
|
|
||||||
#include"UnityStandardMeta.cginc"
|
|
||||||
|
|
||||||
float4 frag_meta2 (v2f_meta i): SV_Target
|
|
||||||
{
|
|
||||||
UnityMetaInput o;
|
|
||||||
UNITY_INITIALIZE_OUTPUT(UnityMetaInput, o);
|
|
||||||
o.Albedo = tex2D(_MainTex, i.uv);
|
|
||||||
return UnityMetaFragment(o);
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma vertex vert_meta
|
|
||||||
#pragma fragment frag_meta2
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
|
|
||||||
Tags {"Queue" = "Overlay+1" "RenderType"="TransparentCutout"}
|
|
||||||
ZTest Always
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vs
|
|
||||||
#pragma fragment ps
|
|
||||||
#include "UnityCG.cginc"
|
|
||||||
|
|
||||||
#pragma multi_compile __ _ALPHATEST_ON
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
|
|
||||||
#ifdef _ALPHATEST_ON
|
|
||||||
sampler2D _TerrainHolesTexture;
|
|
||||||
|
|
||||||
void ClipHoles(float2 uv)
|
|
||||||
{
|
|
||||||
float hole = tex2D(_TerrainHolesTexture, uv).r;
|
|
||||||
clip(hole == 0.0f ? -1 : 1);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct pi
|
|
||||||
{
|
|
||||||
float4 Position : SV_POSITION;
|
|
||||||
float2 TexCoords : TEXCOORD0;
|
|
||||||
};
|
|
||||||
|
|
||||||
void vs(in appdata_full IN, out pi OUT)
|
|
||||||
{
|
|
||||||
OUT.Position = UnityObjectToClipPos(IN.vertex);
|
|
||||||
OUT.TexCoords = IN.texcoord.xy;
|
|
||||||
}
|
|
||||||
|
|
||||||
float4 ps( in pi IN ) : COLOR
|
|
||||||
{
|
|
||||||
#ifdef _ALPHATEST_ON
|
|
||||||
ClipHoles(IN.TexCoords);
|
|
||||||
#endif
|
|
||||||
float4 tex = tex2D(_MainTex, IN.TexCoords);
|
|
||||||
return tex;
|
|
||||||
}
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Dependency "BaseMapShader" = "Hidden/ftUnlitTerrain"
|
|
||||||
Dependency "BaseMapGenShader" = "Hidden/TerrainEngine/Splatmap/Diffuse-BaseGen"
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 20ea139dff8ced947aedd767ed4d773a
|
|
||||||
timeCreated: 1529086730
|
|
||||||
licenseType: Store
|
|
||||||
ShaderImporter:
|
|
||||||
defaultTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 032033b8252780e489288ad3dae65aa5
|
|
||||||
folderAsset: yes
|
|
||||||
timeCreated: 1606240228
|
|
||||||
licenseType: Store
|
|
||||||
DefaultImporter:
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
File diff suppressed because it is too large
Load Diff
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 1f45fcc349188584095300fd024e8f8b
|
|
||||||
timeCreated: 1538411299
|
|
||||||
licenseType: Store
|
|
||||||
ShaderImporter:
|
|
||||||
defaultTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,412 +0,0 @@
|
|||||||
Shader "Bakery/Standard"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
_Color("Color", Color) = (1,1,1,1)
|
|
||||||
_MainTex("Albedo", 2D) = "white" {}
|
|
||||||
|
|
||||||
_Cutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5
|
|
||||||
|
|
||||||
_Glossiness("Smoothness", Range(0.0, 1.0)) = 0.5
|
|
||||||
_GlossMapScale("Smoothness Scale", Range(0.0, 1.0)) = 1.0
|
|
||||||
[Enum(Metallic Alpha,0,Albedo Alpha,1)] _SmoothnessTextureChannel ("Smoothness texture channel", Float) = 0
|
|
||||||
|
|
||||||
[Gamma] _Metallic("Metallic", Range(0.0, 1.0)) = 0.0
|
|
||||||
_MetallicGlossMap("Metallic", 2D) = "white" {}
|
|
||||||
|
|
||||||
[ToggleOff] _SpecularHighlights("Specular Highlights", Float) = 1.0
|
|
||||||
[ToggleOff] _GlossyReflections("Glossy Reflections", Float) = 1.0
|
|
||||||
|
|
||||||
_BumpScale("Scale", Float) = 1.0
|
|
||||||
_BumpMap("Normal Map", 2D) = "bump" {}
|
|
||||||
|
|
||||||
_Parallax ("Height Scale", Range (0.005, 0.08)) = 0.02
|
|
||||||
_ParallaxMap ("Height Map", 2D) = "black" {}
|
|
||||||
|
|
||||||
_OcclusionStrength("Strength", Range(0.0, 1.0)) = 1.0
|
|
||||||
_OcclusionMap("Occlusion", 2D) = "white" {}
|
|
||||||
|
|
||||||
_EmissionColor("Color", Color) = (0,0,0)
|
|
||||||
_EmissionMap("Emission", 2D) = "white" {}
|
|
||||||
|
|
||||||
_DetailMask("Detail Mask", 2D) = "white" {}
|
|
||||||
|
|
||||||
_DetailAlbedoMap("Detail Albedo x2", 2D) = "grey" {}
|
|
||||||
_DetailNormalMapScale("Scale", Float) = 1.0
|
|
||||||
_DetailNormalMap("Normal Map", 2D) = "bump" {}
|
|
||||||
|
|
||||||
[Enum(UV0,0,UV1,1)] _UVSec ("UV Set for secondary textures", Float) = 0
|
|
||||||
|
|
||||||
// Blending state
|
|
||||||
[HideInInspector] _Mode ("__mode", Float) = 0.0
|
|
||||||
[HideInInspector] _SrcBlend ("__src", Float) = 1.0
|
|
||||||
[HideInInspector] _DstBlend ("__dst", Float) = 0.0
|
|
||||||
[HideInInspector] _ZWrite ("__zw", Float) = 1.0
|
|
||||||
|
|
||||||
_Volume0("Volume0", 3D) = "black" {}
|
|
||||||
_Volume1("Volume1", 3D) = "black" {}
|
|
||||||
_Volume2("Volume2", 3D) = "black" {}
|
|
||||||
_VolumeMask("Volume Mask", 3D) = "white" {}
|
|
||||||
_VolumeMin("Volume min", Vector) = (0,0,0)
|
|
||||||
_VolumeInvSize("Volume Inv Size", Vector) = (1000001, 1000001, 1000001)
|
|
||||||
|
|
||||||
[HideInInspector] _BAKERY_2SIDED ("__2s", Float) = 2.0
|
|
||||||
[Toggle(BAKERY_2SIDEDON)] _BAKERY_2SIDEDON ("Double-sided", Float) = 0
|
|
||||||
[Toggle(BAKERY_VERTEXLM)] _BAKERY_VERTEXLM ("Enable vertex LM", Float) = 0
|
|
||||||
[Toggle(BAKERY_VERTEXLMDIR)] _BAKERY_VERTEXLMDIR ("Enable directional vertex LM", Float) = 0
|
|
||||||
[Toggle(BAKERY_VERTEXLMSH)] _BAKERY_VERTEXLMSH ("Enable SH vertex LM", Float) = 0
|
|
||||||
[Toggle(BAKERY_VERTEXLMMASK)] _BAKERY_VERTEXLMMASK ("Enable shadowmask vertex LM", Float) = 0
|
|
||||||
[Toggle(BAKERY_SH)] _BAKERY_SH ("Enable SH", Float) = 0
|
|
||||||
[Toggle(BAKERY_SHNONLINEAR)] _BAKERY_SHNONLINEAR ("SH non-linear mode", Float) = 1
|
|
||||||
[Toggle(BAKERY_RNM)] _BAKERY_RNM ("Enable RNM", Float) = 0
|
|
||||||
[Toggle(BAKERY_LMSPEC)] _BAKERY_LMSPEC ("Enable Lightmap Specular", Float) = 0
|
|
||||||
[Toggle(BAKERY_BICUBIC)] _BAKERY_BICUBIC ("Enable Bicubic Filter", Float) = 0
|
|
||||||
[Toggle(BAKERY_PROBESHNONLINEAR)] _BAKERY_PROBESHNONLINEAR ("Use non-linear SH for light probes", Float) = 0
|
|
||||||
[Toggle(BAKERY_VOLUME)] _BAKERY_VOLUME ("Use volumes", Float) = 0
|
|
||||||
}
|
|
||||||
|
|
||||||
CGINCLUDE
|
|
||||||
#define UNITY_SETUP_BRDF_INPUT MetallicSetup
|
|
||||||
ENDCG
|
|
||||||
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "RenderType"="Opaque" "PerformanceChecks"="False" }
|
|
||||||
LOD 300
|
|
||||||
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------
|
|
||||||
// Base forward pass (directional light, emission, lightmaps, ...)
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
Name "FORWARD"
|
|
||||||
Tags { "LightMode" = "ForwardBase" }
|
|
||||||
|
|
||||||
Blend [_SrcBlend] [_DstBlend]
|
|
||||||
ZWrite [_ZWrite]
|
|
||||||
Cull [_BAKERY_2SIDED]
|
|
||||||
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma target 3.0
|
|
||||||
|
|
||||||
// -------------------------------------
|
|
||||||
|
|
||||||
#pragma shader_feature _NORMALMAP
|
|
||||||
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
|
|
||||||
#pragma shader_feature _EMISSION
|
|
||||||
#pragma shader_feature _METALLICGLOSSMAP
|
|
||||||
#pragma shader_feature ___ _DETAIL_MULX2
|
|
||||||
#pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
|
|
||||||
#pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
|
|
||||||
#pragma shader_feature _ _GLOSSYREFLECTIONS_OFF
|
|
||||||
#pragma shader_feature _PARALLAXMAP
|
|
||||||
#pragma shader_feature UNITY_SPECCUBE_BOX_PROJECTION
|
|
||||||
|
|
||||||
#pragma shader_feature BAKERY_VERTEXLM
|
|
||||||
#pragma shader_feature BAKERY_VERTEXLMDIR
|
|
||||||
#pragma shader_feature BAKERY_VERTEXLMSH
|
|
||||||
#pragma shader_feature BAKERY_VERTEXLMMASK
|
|
||||||
#pragma shader_feature BAKERY_SH
|
|
||||||
#pragma shader_feature BAKERY_SHNONLINEAR
|
|
||||||
#pragma shader_feature BAKERY_RNM
|
|
||||||
#pragma shader_feature BAKERY_LMSPEC
|
|
||||||
#pragma shader_feature BAKERY_BICUBIC
|
|
||||||
#pragma shader_feature BAKERY_PROBESHNONLINEAR
|
|
||||||
#pragma shader_feature BAKERY_VOLUME
|
|
||||||
|
|
||||||
#pragma multi_compile_fwdbase
|
|
||||||
#pragma multi_compile_fog
|
|
||||||
#pragma multi_compile_instancing
|
|
||||||
// Uncomment the following line to enable dithering LOD crossfade. Note: there are more in the file to uncomment for other passes.
|
|
||||||
//#pragma multi_compile _ LOD_FADE_CROSSFADE
|
|
||||||
|
|
||||||
#pragma vertex bakeryVertForwardBase
|
|
||||||
#pragma fragment bakeryFragForwardBase
|
|
||||||
|
|
||||||
#include "UnityStandardCoreForward.cginc"
|
|
||||||
#include "Bakery.cginc"
|
|
||||||
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
// ------------------------------------------------------------------
|
|
||||||
// Additive forward pass (one light per pass)
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
Name "FORWARD_DELTA"
|
|
||||||
Tags { "LightMode" = "ForwardAdd" }
|
|
||||||
Blend [_SrcBlend] One
|
|
||||||
Fog { Color (0,0,0,0) } // in additive pass fog should be black
|
|
||||||
ZWrite Off
|
|
||||||
ZTest LEqual
|
|
||||||
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma target 3.0
|
|
||||||
|
|
||||||
// -------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
#pragma shader_feature _NORMALMAP
|
|
||||||
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
|
|
||||||
#pragma shader_feature _METALLICGLOSSMAP
|
|
||||||
#pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
|
|
||||||
#pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
|
|
||||||
#pragma shader_feature ___ _DETAIL_MULX2
|
|
||||||
#pragma shader_feature _PARALLAXMAP
|
|
||||||
|
|
||||||
#pragma multi_compile_fwdadd_fullshadows
|
|
||||||
#pragma multi_compile_fog
|
|
||||||
// Uncomment the following line to enable dithering LOD crossfade. Note: there are more in the file to uncomment for other passes.
|
|
||||||
//#pragma multi_compile _ LOD_FADE_CROSSFADE
|
|
||||||
|
|
||||||
#pragma vertex bakeryVertForwardAdd
|
|
||||||
#pragma fragment bakeryFragForwardAdd
|
|
||||||
|
|
||||||
#include "UnityStandardCoreForward.cginc"
|
|
||||||
#include "Bakery.cginc"
|
|
||||||
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
// ------------------------------------------------------------------
|
|
||||||
// Shadow rendering pass
|
|
||||||
Pass {
|
|
||||||
Name "ShadowCaster"
|
|
||||||
Tags { "LightMode" = "ShadowCaster" }
|
|
||||||
|
|
||||||
ZWrite On ZTest LEqual
|
|
||||||
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma target 3.0
|
|
||||||
|
|
||||||
// -------------------------------------
|
|
||||||
|
|
||||||
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
|
|
||||||
#pragma shader_feature _METALLICGLOSSMAP
|
|
||||||
#pragma shader_feature _PARALLAXMAP
|
|
||||||
#pragma multi_compile_shadowcaster
|
|
||||||
#pragma multi_compile_instancing
|
|
||||||
// Uncomment the following line to enable dithering LOD crossfade. Note: there are more in the file to uncomment for other passes.
|
|
||||||
//#pragma multi_compile _ LOD_FADE_CROSSFADE
|
|
||||||
|
|
||||||
#pragma vertex vertShadowCaster
|
|
||||||
#pragma fragment fragShadowCaster
|
|
||||||
|
|
||||||
#include "UnityStandardShadow.cginc"
|
|
||||||
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
// ------------------------------------------------------------------
|
|
||||||
// Deferred pass
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
Name "DEFERRED"
|
|
||||||
Tags { "LightMode" = "Deferred" }
|
|
||||||
|
|
||||||
Cull [_BAKERY_2SIDED]
|
|
||||||
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma target 3.0
|
|
||||||
#pragma exclude_renderers nomrt
|
|
||||||
|
|
||||||
|
|
||||||
// -------------------------------------
|
|
||||||
|
|
||||||
#pragma shader_feature _NORMALMAP
|
|
||||||
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
|
|
||||||
#pragma shader_feature _EMISSION
|
|
||||||
#pragma shader_feature _METALLICGLOSSMAP
|
|
||||||
#pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
|
|
||||||
#pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
|
|
||||||
#pragma shader_feature ___ _DETAIL_MULX2
|
|
||||||
#pragma shader_feature _PARALLAXMAP
|
|
||||||
|
|
||||||
#pragma shader_feature BAKERY_VERTEXLM
|
|
||||||
#pragma shader_feature BAKERY_VERTEXLMDIR
|
|
||||||
#pragma shader_feature BAKERY_VERTEXLMSH
|
|
||||||
#pragma shader_feature BAKERY_VERTEXLMMASK
|
|
||||||
#pragma shader_feature BAKERY_SH
|
|
||||||
#pragma shader_feature BAKERY_SHNONLINEAR
|
|
||||||
#pragma shader_feature BAKERY_RNM
|
|
||||||
#pragma shader_feature BAKERY_LMSPEC
|
|
||||||
#pragma shader_feature BAKERY_BICUBIC
|
|
||||||
#pragma shader_feature BAKERY_PROBESHNONLINEAR
|
|
||||||
#pragma shader_feature BAKERY_VOLUME
|
|
||||||
|
|
||||||
#pragma multi_compile_prepassfinal
|
|
||||||
#pragma multi_compile_instancing
|
|
||||||
// Uncomment the following line to enable dithering LOD crossfade. Note: there are more in the file to uncomment for other passes.
|
|
||||||
//#pragma multi_compile _ LOD_FADE_CROSSFADE
|
|
||||||
|
|
||||||
#pragma vertex bakeryVertDeferred
|
|
||||||
#pragma fragment bakeryFragDeferred
|
|
||||||
|
|
||||||
#include "UnityStandardCore.cginc"
|
|
||||||
#include "Bakery.cginc"
|
|
||||||
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------
|
|
||||||
// Extracts information for lightmapping, GI (emission, albedo, ...)
|
|
||||||
// This pass it not used during regular rendering.
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
Name "META"
|
|
||||||
Tags { "LightMode"="Meta" }
|
|
||||||
|
|
||||||
Cull Off
|
|
||||||
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert_meta
|
|
||||||
#pragma fragment frag_meta
|
|
||||||
|
|
||||||
#pragma shader_feature _EMISSION
|
|
||||||
#pragma shader_feature _METALLICGLOSSMAP
|
|
||||||
#pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
|
|
||||||
#pragma shader_feature ___ _DETAIL_MULX2
|
|
||||||
#pragma shader_feature EDITOR_VISUALIZATION
|
|
||||||
|
|
||||||
#include "UnityStandardMeta.cginc"
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "RenderType"="Opaque" "PerformanceChecks"="False" }
|
|
||||||
LOD 150
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------
|
|
||||||
// Base forward pass (directional light, emission, lightmaps, ...)
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
Name "FORWARD"
|
|
||||||
Tags { "LightMode" = "ForwardBase" }
|
|
||||||
|
|
||||||
Blend [_SrcBlend] [_DstBlend]
|
|
||||||
ZWrite [_ZWrite]
|
|
||||||
Cull [_BAKERY_2SIDED]
|
|
||||||
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma target 2.0
|
|
||||||
|
|
||||||
#pragma shader_feature _NORMALMAP
|
|
||||||
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
|
|
||||||
#pragma shader_feature _EMISSION
|
|
||||||
#pragma shader_feature _METALLICGLOSSMAP
|
|
||||||
#pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
|
|
||||||
#pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
|
|
||||||
#pragma shader_feature _ _GLOSSYREFLECTIONS_OFF
|
|
||||||
|
|
||||||
//#pragma shader_feature BAKERY_VERTEXLM
|
|
||||||
//#pragma shader_feature BAKERY_VERTEXLMDIR
|
|
||||||
//#pragma shader_feature BAKERY_VERTEXLMSH
|
|
||||||
//#pragma shader_feature BAKERY_VERTEXLMMASK
|
|
||||||
//#pragma shader_feature BAKERY_SH
|
|
||||||
//#pragma shader_feature BAKERY_SHNONLINEAR
|
|
||||||
//#pragma shader_feature BAKERY_RNM
|
|
||||||
//#pragma shader_feature BAKERY_LMSPEC
|
|
||||||
//#pragma shader_feature BAKERY_BICUBIC
|
|
||||||
|
|
||||||
// SM2.0: NOT SUPPORTED shader_feature ___ _DETAIL_MULX2
|
|
||||||
// SM2.0: NOT SUPPORTED shader_feature _PARALLAXMAP
|
|
||||||
|
|
||||||
#pragma skip_variants SHADOWS_SOFT DIRLIGHTMAP_COMBINED
|
|
||||||
|
|
||||||
#pragma multi_compile_fwdbase
|
|
||||||
#pragma multi_compile_fog
|
|
||||||
|
|
||||||
#pragma vertex bakeryVertForwardBase
|
|
||||||
#pragma fragment bakeryFragForwardBase
|
|
||||||
|
|
||||||
#include "UnityStandardCoreForward.cginc"
|
|
||||||
#include "Bakery.cginc"
|
|
||||||
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
// ------------------------------------------------------------------
|
|
||||||
// Additive forward pass (one light per pass)
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
Name "FORWARD_DELTA"
|
|
||||||
Tags { "LightMode" = "ForwardAdd" }
|
|
||||||
Blend [_SrcBlend] One
|
|
||||||
Fog { Color (0,0,0,0) } // in additive pass fog should be black
|
|
||||||
ZWrite Off
|
|
||||||
ZTest LEqual
|
|
||||||
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma target 2.0
|
|
||||||
|
|
||||||
#pragma shader_feature _NORMALMAP
|
|
||||||
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
|
|
||||||
#pragma shader_feature _METALLICGLOSSMAP
|
|
||||||
#pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
|
|
||||||
#pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
|
|
||||||
#pragma shader_feature ___ _DETAIL_MULX2
|
|
||||||
// SM2.0: NOT SUPPORTED shader_feature _PARALLAXMAP
|
|
||||||
#pragma skip_variants SHADOWS_SOFT
|
|
||||||
|
|
||||||
#pragma multi_compile_fwdadd_fullshadows
|
|
||||||
#pragma multi_compile_fog
|
|
||||||
|
|
||||||
#pragma vertex bakeryVertForwardAdd
|
|
||||||
#pragma fragment bakeryFragForwardAdd
|
|
||||||
|
|
||||||
#include "UnityStandardCoreForward.cginc"
|
|
||||||
#include "Bakery.cginc"
|
|
||||||
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
// ------------------------------------------------------------------
|
|
||||||
// Shadow rendering pass
|
|
||||||
Pass {
|
|
||||||
Name "ShadowCaster"
|
|
||||||
Tags { "LightMode" = "ShadowCaster" }
|
|
||||||
|
|
||||||
ZWrite On ZTest LEqual
|
|
||||||
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma target 2.0
|
|
||||||
|
|
||||||
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
|
|
||||||
#pragma shader_feature _METALLICGLOSSMAP
|
|
||||||
#pragma skip_variants SHADOWS_SOFT
|
|
||||||
#pragma multi_compile_shadowcaster
|
|
||||||
|
|
||||||
#pragma vertex vertShadowCaster
|
|
||||||
#pragma fragment fragShadowCaster
|
|
||||||
|
|
||||||
#include "UnityStandardShadow.cginc"
|
|
||||||
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------
|
|
||||||
// Extracts information for lightmapping, GI (emission, albedo, ...)
|
|
||||||
// This pass it not used during regular rendering.
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
Name "META"
|
|
||||||
Tags { "LightMode"="Meta" }
|
|
||||||
|
|
||||||
Cull Off
|
|
||||||
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert_meta
|
|
||||||
#pragma fragment frag_meta
|
|
||||||
|
|
||||||
#pragma shader_feature _EMISSION
|
|
||||||
#pragma shader_feature _METALLICGLOSSMAP
|
|
||||||
#pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
|
|
||||||
#pragma shader_feature ___ _DETAIL_MULX2
|
|
||||||
#pragma shader_feature EDITOR_VISUALIZATION
|
|
||||||
|
|
||||||
#include "UnityStandardMeta.cginc"
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
FallBack "VertexLit"
|
|
||||||
CustomEditor "BakeryShaderGUI"
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 3334d0a534d2dac45b2c1a9a7e0a6c64
|
|
||||||
timeCreated: 1538411300
|
|
||||||
licenseType: Store
|
|
||||||
ShaderImporter:
|
|
||||||
defaultTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,395 +0,0 @@
|
|||||||
Shader "Bakery/Standard Specular"
|
|
||||||
{
|
|
||||||
Properties
|
|
||||||
{
|
|
||||||
_Color("Color", Color) = (1,1,1,1)
|
|
||||||
_MainTex("Albedo", 2D) = "white" {}
|
|
||||||
|
|
||||||
_Cutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5
|
|
||||||
|
|
||||||
_Glossiness("Smoothness", Range(0.0, 1.0)) = 0.5
|
|
||||||
_GlossMapScale("Smoothness Factor", Range(0.0, 1.0)) = 1.0
|
|
||||||
[Enum(Specular Alpha,0,Albedo Alpha,1)] _SmoothnessTextureChannel("Smoothness texture channel", Float) = 0
|
|
||||||
|
|
||||||
_SpecColor("Specular", Color) = (0.2,0.2,0.2)
|
|
||||||
_SpecGlossMap("Specular", 2D) = "white" {}
|
|
||||||
[ToggleOff] _SpecularHighlights("Specular Highlights", Float) = 1.0
|
|
||||||
[ToggleOff] _GlossyReflections("Glossy Reflections", Float) = 1.0
|
|
||||||
|
|
||||||
_BumpScale("Scale", Float) = 1.0
|
|
||||||
_BumpMap("Normal Map", 2D) = "bump" {}
|
|
||||||
|
|
||||||
_Parallax ("Height Scale", Range (0.005, 0.08)) = 0.02
|
|
||||||
_ParallaxMap ("Height Map", 2D) = "black" {}
|
|
||||||
|
|
||||||
_OcclusionStrength("Strength", Range(0.0, 1.0)) = 1.0
|
|
||||||
_OcclusionMap("Occlusion", 2D) = "white" {}
|
|
||||||
|
|
||||||
_EmissionColor("Color", Color) = (0,0,0)
|
|
||||||
_EmissionMap("Emission", 2D) = "white" {}
|
|
||||||
|
|
||||||
_DetailMask("Detail Mask", 2D) = "white" {}
|
|
||||||
|
|
||||||
_DetailAlbedoMap("Detail Albedo x2", 2D) = "grey" {}
|
|
||||||
_DetailNormalMapScale("Scale", Float) = 1.0
|
|
||||||
_DetailNormalMap("Normal Map", 2D) = "bump" {}
|
|
||||||
|
|
||||||
[Enum(UV0,0,UV1,1)] _UVSec ("UV Set for secondary textures", Float) = 0
|
|
||||||
|
|
||||||
|
|
||||||
// Blending state
|
|
||||||
[HideInInspector] _Mode ("__mode", Float) = 0.0
|
|
||||||
[HideInInspector] _SrcBlend ("__src", Float) = 1.0
|
|
||||||
[HideInInspector] _DstBlend ("__dst", Float) = 0.0
|
|
||||||
[HideInInspector] _ZWrite ("__zw", Float) = 1.0
|
|
||||||
|
|
||||||
[HideInInspector] _BAKERY_2SIDED ("__2s", Float) = 2.0
|
|
||||||
[Toggle(BAKERY_2SIDEDON)] _BAKERY_2SIDEDON ("Double-sided", Float) = 0
|
|
||||||
[Toggle(BAKERY_VERTEXLM)] _BAKERY_VERTEXLM ("Enable vertex LM", Float) = 0
|
|
||||||
[Toggle(BAKERY_VERTEXLMDIR)] _BAKERY_VERTEXLMDIR ("Enable directional vertex LM", Float) = 0
|
|
||||||
[Toggle(BAKERY_VERTEXLMSH)] _BAKERY_VERTEXLMSH ("Enable SH vertex LM", Float) = 0
|
|
||||||
[Toggle(BAKERY_VERTEXLMMASK)] _BAKERY_VERTEXLMMASK ("Enable shadowmask vertex LM", Float) = 0
|
|
||||||
[Toggle(BAKERY_SH)] _BAKERY_SH ("Enable SH", Float) = 0
|
|
||||||
[Toggle(BAKERY_SHNONLINEAR)] _BAKERY_SHNONLINEAR ("SH non-linear mode", Float) = 1
|
|
||||||
[Toggle(BAKERY_RNM)] _BAKERY_RNM ("Enable RNM", Float) = 0
|
|
||||||
[Toggle(BAKERY_LMSPEC)] _BAKERY_LMSPEC ("Enable Lightmap Specular", Float) = 0
|
|
||||||
[Toggle(BAKERY_BICUBIC)] _BAKERY_BICUBIC ("Enable Bicubic Filter", Float) = 0
|
|
||||||
[Toggle(BAKERY_PROBESHNONLINEAR)] _BAKERY_PROBESHNONLINEAR ("Use non-linear SH for light probes", Float) = 0
|
|
||||||
}
|
|
||||||
|
|
||||||
CGINCLUDE
|
|
||||||
#define UNITY_SETUP_BRDF_INPUT SpecularSetup
|
|
||||||
ENDCG
|
|
||||||
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "RenderType"="Opaque" "PerformanceChecks"="False" }
|
|
||||||
LOD 300
|
|
||||||
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------
|
|
||||||
// Base forward pass (directional light, emission, lightmaps, ...)
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
Name "FORWARD"
|
|
||||||
Tags { "LightMode" = "ForwardBase" }
|
|
||||||
|
|
||||||
Blend [_SrcBlend] [_DstBlend]
|
|
||||||
ZWrite [_ZWrite]
|
|
||||||
Cull [_BAKERY_2SIDED]
|
|
||||||
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma target 3.0
|
|
||||||
|
|
||||||
// -------------------------------------
|
|
||||||
|
|
||||||
#pragma shader_feature _NORMALMAP
|
|
||||||
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
|
|
||||||
#pragma shader_feature _EMISSION
|
|
||||||
#pragma shader_feature _SPECGLOSSMAP
|
|
||||||
#pragma shader_feature ___ _DETAIL_MULX2
|
|
||||||
#pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
|
|
||||||
#pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
|
|
||||||
#pragma shader_feature _ _GLOSSYREFLECTIONS_OFF
|
|
||||||
#pragma shader_feature _PARALLAXMAP
|
|
||||||
|
|
||||||
#pragma shader_feature BAKERY_VERTEXLM
|
|
||||||
#pragma shader_feature BAKERY_VERTEXLMDIR
|
|
||||||
#pragma shader_feature BAKERY_VERTEXLMSH
|
|
||||||
#pragma shader_feature BAKERY_VERTEXLMMASK
|
|
||||||
#pragma shader_feature BAKERY_SH
|
|
||||||
#pragma shader_feature BAKERY_SHNONLINEAR
|
|
||||||
#pragma shader_feature BAKERY_RNM
|
|
||||||
#pragma shader_feature BAKERY_LMSPEC
|
|
||||||
#pragma shader_feature BAKERY_BICUBIC
|
|
||||||
#pragma shader_feature BAKERY_PROBESHNONLINEAR
|
|
||||||
|
|
||||||
#pragma multi_compile_fwdbase
|
|
||||||
#pragma multi_compile_fog
|
|
||||||
#pragma multi_compile_instancing
|
|
||||||
// Uncomment the following line to enable dithering LOD crossfade. Note: there are more in the file to uncomment for other passes.
|
|
||||||
//#pragma multi_compile _ LOD_FADE_CROSSFADE
|
|
||||||
|
|
||||||
#pragma vertex bakeryVertForwardBase
|
|
||||||
#pragma fragment bakeryFragForwardBase
|
|
||||||
|
|
||||||
#include "UnityStandardCore.cginc"
|
|
||||||
#include "Bakery.cginc"
|
|
||||||
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
// ------------------------------------------------------------------
|
|
||||||
// Additive forward pass (one light per pass)
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
Name "FORWARD_DELTA"
|
|
||||||
Tags { "LightMode" = "ForwardAdd" }
|
|
||||||
Blend [_SrcBlend] One
|
|
||||||
Fog { Color (0,0,0,0) } // in additive pass fog should be black
|
|
||||||
ZWrite Off
|
|
||||||
ZTest LEqual
|
|
||||||
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma target 3.0
|
|
||||||
|
|
||||||
// -------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
#pragma shader_feature _NORMALMAP
|
|
||||||
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
|
|
||||||
#pragma shader_feature _SPECGLOSSMAP
|
|
||||||
#pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
|
|
||||||
#pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
|
|
||||||
#pragma shader_feature ___ _DETAIL_MULX2
|
|
||||||
#pragma shader_feature _PARALLAXMAP
|
|
||||||
|
|
||||||
#pragma multi_compile_fwdadd_fullshadows
|
|
||||||
#pragma multi_compile_fog
|
|
||||||
// Uncomment the following line to enable dithering LOD crossfade. Note: there are more in the file to uncomment for other passes.
|
|
||||||
//#pragma multi_compile _ LOD_FADE_CROSSFADE
|
|
||||||
|
|
||||||
#pragma vertex bakeryVertForwardAdd
|
|
||||||
#pragma fragment bakeryFragForwardAdd
|
|
||||||
|
|
||||||
#include "UnityStandardCore.cginc"
|
|
||||||
#include "Bakery.cginc"
|
|
||||||
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
// ------------------------------------------------------------------
|
|
||||||
// Shadow rendering pass
|
|
||||||
Pass {
|
|
||||||
Name "ShadowCaster"
|
|
||||||
Tags { "LightMode" = "ShadowCaster" }
|
|
||||||
|
|
||||||
ZWrite On ZTest LEqual
|
|
||||||
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma target 3.0
|
|
||||||
|
|
||||||
// -------------------------------------
|
|
||||||
|
|
||||||
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
|
|
||||||
#pragma multi_compile_shadowcaster
|
|
||||||
|
|
||||||
#pragma vertex vertShadowCaster
|
|
||||||
#pragma fragment fragShadowCaster
|
|
||||||
|
|
||||||
#include "UnityStandardShadow.cginc"
|
|
||||||
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
// ------------------------------------------------------------------
|
|
||||||
// Deferred pass
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
Name "DEFERRED"
|
|
||||||
Tags { "LightMode" = "Deferred" }
|
|
||||||
|
|
||||||
Cull [_BAKERY_2SIDED]
|
|
||||||
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma target 3.0
|
|
||||||
#pragma exclude_renderers nomrt
|
|
||||||
|
|
||||||
|
|
||||||
// -------------------------------------
|
|
||||||
|
|
||||||
#pragma shader_feature _NORMALMAP
|
|
||||||
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
|
|
||||||
#pragma shader_feature _EMISSION
|
|
||||||
#pragma shader_feature _SPECGLOSSMAP
|
|
||||||
#pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
|
|
||||||
#pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
|
|
||||||
#pragma shader_feature ___ _DETAIL_MULX2
|
|
||||||
#pragma shader_feature _PARALLAXMAP
|
|
||||||
|
|
||||||
#pragma shader_feature BAKERY_VERTEXLM
|
|
||||||
#pragma shader_feature BAKERY_VERTEXLMDIR
|
|
||||||
#pragma shader_feature BAKERY_VERTEXLMSH
|
|
||||||
#pragma shader_feature BAKERY_VERTEXLMMASK
|
|
||||||
#pragma shader_feature BAKERY_SH
|
|
||||||
#pragma shader_feature BAKERY_SHNONLINEAR
|
|
||||||
#pragma shader_feature BAKERY_RNM
|
|
||||||
#pragma shader_feature BAKERY_LMSPEC
|
|
||||||
#pragma shader_feature BAKERY_BICUBIC
|
|
||||||
#pragma shader_feature BAKERY_PROBESHNONLINEAR
|
|
||||||
|
|
||||||
#pragma multi_compile_prepassfinal
|
|
||||||
#pragma multi_compile_instancing
|
|
||||||
// Uncomment the following line to enable dithering LOD crossfade. Note: there are more in the file to uncomment for other passes.
|
|
||||||
//#pragma multi_compile _ LOD_FADE_CROSSFADE
|
|
||||||
|
|
||||||
#pragma vertex bakeryVertDeferred
|
|
||||||
#pragma fragment bakeryFragDeferred
|
|
||||||
|
|
||||||
#include "UnityStandardCore.cginc"
|
|
||||||
#include "Bakery.cginc"
|
|
||||||
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------
|
|
||||||
// Extracts information for lightmapping, GI (emission, albedo, ...)
|
|
||||||
// This pass it not used during regular rendering.
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
Name "META"
|
|
||||||
Tags { "LightMode"="Meta" }
|
|
||||||
|
|
||||||
Cull Off
|
|
||||||
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert_meta
|
|
||||||
#pragma fragment frag_meta
|
|
||||||
|
|
||||||
#pragma shader_feature _EMISSION
|
|
||||||
#pragma shader_feature _SPECGLOSSMAP
|
|
||||||
#pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
|
|
||||||
#pragma shader_feature ___ _DETAIL_MULX2
|
|
||||||
|
|
||||||
#include "UnityStandardMeta.cginc"
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SubShader
|
|
||||||
{
|
|
||||||
Tags { "RenderType"="Opaque" "PerformanceChecks"="False" }
|
|
||||||
LOD 150
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------
|
|
||||||
// Base forward pass (directional light, emission, lightmaps, ...)
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
Name "FORWARD"
|
|
||||||
Tags { "LightMode" = "ForwardBase" }
|
|
||||||
|
|
||||||
Blend [_SrcBlend] [_DstBlend]
|
|
||||||
ZWrite [_ZWrite]
|
|
||||||
Cull [_BAKERY_2SIDED]
|
|
||||||
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma target 2.0
|
|
||||||
|
|
||||||
#pragma shader_feature _NORMALMAP
|
|
||||||
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
|
|
||||||
#pragma shader_feature _EMISSION
|
|
||||||
#pragma shader_feature _SPECGLOSSMAP
|
|
||||||
#pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
|
|
||||||
#pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
|
|
||||||
#pragma shader_feature _ _GLOSSYREFLECTIONS_OFF
|
|
||||||
#pragma shader_feature ___ _DETAIL_MULX2
|
|
||||||
|
|
||||||
/*
|
|
||||||
#pragma shader_feature BAKERY_VERTEXLM
|
|
||||||
#pragma shader_feature BAKERY_VERTEXLMDIR
|
|
||||||
#pragma shader_feature BAKERY_VERTEXLMSH
|
|
||||||
#pragma shader_feature BAKERY_VERTEXLMMASK
|
|
||||||
#pragma shader_feature BAKERY_SH
|
|
||||||
#pragma shader_feature BAKERY_SHNONLINEAR
|
|
||||||
#pragma shader_feature BAKERY_RNM
|
|
||||||
#pragma shader_feature BAKERY_LMSPEC
|
|
||||||
#pragma shader_feature BAKERY_BICUBIC
|
|
||||||
*/
|
|
||||||
|
|
||||||
// SM2.0: NOT SUPPORTED shader_feature _PARALLAXMAP
|
|
||||||
|
|
||||||
#pragma skip_variants SHADOWS_SOFT DIRLIGHTMAP_COMBINED
|
|
||||||
|
|
||||||
#pragma multi_compile_fwdbase
|
|
||||||
#pragma multi_compile_fog
|
|
||||||
|
|
||||||
#pragma vertex bakeryVertForwardBase
|
|
||||||
#pragma fragment bakeryFragForwardBase
|
|
||||||
|
|
||||||
#include "UnityStandardCoreForward.cginc"
|
|
||||||
#include "Bakery.cginc"
|
|
||||||
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
// ------------------------------------------------------------------
|
|
||||||
// Additive forward pass (one light per pass)
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
Name "FORWARD_DELTA"
|
|
||||||
Tags { "LightMode" = "ForwardAdd" }
|
|
||||||
Blend [_SrcBlend] One
|
|
||||||
Fog { Color (0,0,0,0) } // in additive pass fog should be black
|
|
||||||
ZWrite Off
|
|
||||||
ZTest LEqual
|
|
||||||
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma target 2.0
|
|
||||||
|
|
||||||
#pragma shader_feature _NORMALMAP
|
|
||||||
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
|
|
||||||
#pragma shader_feature _SPECGLOSSMAP
|
|
||||||
#pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
|
|
||||||
#pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
|
|
||||||
#pragma shader_feature ___ _DETAIL_MULX2
|
|
||||||
// SM2.0: NOT SUPPORTED shader_feature _PARALLAXMAP
|
|
||||||
#pragma skip_variants SHADOWS_SOFT
|
|
||||||
|
|
||||||
#pragma multi_compile_fwdadd_fullshadows
|
|
||||||
#pragma multi_compile_fog
|
|
||||||
|
|
||||||
#pragma vertex bakeryVertForwardAdd
|
|
||||||
#pragma fragment bakeryFragForwardAdd
|
|
||||||
|
|
||||||
#include "UnityStandardCoreForward.cginc"
|
|
||||||
#include "Bakery.cginc"
|
|
||||||
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
// ------------------------------------------------------------------
|
|
||||||
// Shadow rendering pass
|
|
||||||
Pass {
|
|
||||||
Name "ShadowCaster"
|
|
||||||
Tags { "LightMode" = "ShadowCaster" }
|
|
||||||
|
|
||||||
ZWrite On ZTest LEqual
|
|
||||||
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma target 2.0
|
|
||||||
|
|
||||||
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
|
|
||||||
#pragma skip_variants SHADOWS_SOFT
|
|
||||||
#pragma multi_compile_shadowcaster
|
|
||||||
|
|
||||||
#pragma vertex vertShadowCaster
|
|
||||||
#pragma fragment fragShadowCaster
|
|
||||||
|
|
||||||
#include "UnityStandardShadow.cginc"
|
|
||||||
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------
|
|
||||||
// Extracts information for lightmapping, GI (emission, albedo, ...)
|
|
||||||
// This pass it not used during regular rendering.
|
|
||||||
Pass
|
|
||||||
{
|
|
||||||
Name "META"
|
|
||||||
Tags { "LightMode"="Meta" }
|
|
||||||
|
|
||||||
Cull Off
|
|
||||||
|
|
||||||
CGPROGRAM
|
|
||||||
#pragma vertex vert_meta
|
|
||||||
#pragma fragment frag_meta
|
|
||||||
|
|
||||||
#pragma shader_feature _EMISSION
|
|
||||||
#pragma shader_feature _SPECGLOSSMAP
|
|
||||||
#pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
|
|
||||||
#pragma shader_feature ___ _DETAIL_MULX2
|
|
||||||
#pragma shader_feature EDITOR_VISUALIZATION
|
|
||||||
|
|
||||||
#include "UnityStandardMeta.cginc"
|
|
||||||
ENDCG
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
FallBack "VertexLit"
|
|
||||||
CustomEditor "BakeryShaderGUI"
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 2ad53c3d60baf17489980f3b010d040e
|
|
||||||
timeCreated: 1538413381
|
|
||||||
licenseType: Store
|
|
||||||
ShaderImporter:
|
|
||||||
defaultTextures: []
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: b1b95168f2f925246bf670cb2bc2bf79
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: b1b95168f2f925246bf670cb2bc2bf79
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 8047766b75cdf0f49ab33359414b6180
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: b1b95168f2f925246bf670cb2bc2bf79
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: b0399983d72385549807a056e27c97e7
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: ec3754b09ac1517429546e96e7b25708
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,9 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: d995d6425d6713e4e8ad1844c0f6f216
|
|
||||||
folderAsset: yes
|
|
||||||
timeCreated: 1606240228
|
|
||||||
licenseType: Store
|
|
||||||
DefaultImporter:
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,580 +0,0 @@
|
|||||||
#if UNITY_EDITOR
|
|
||||||
|
|
||||||
// Disable 'obsolete' warnings
|
|
||||||
#pragma warning disable 0618
|
|
||||||
#pragma warning disable 0612
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace UnityEditor
|
|
||||||
{
|
|
||||||
public class BakeryShaderGUI : ShaderGUI
|
|
||||||
{
|
|
||||||
private enum WorkflowMode
|
|
||||||
{
|
|
||||||
Specular,
|
|
||||||
Metallic,
|
|
||||||
Dielectric
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum BlendMode
|
|
||||||
{
|
|
||||||
Opaque,
|
|
||||||
Cutout,
|
|
||||||
Fade, // Old school alpha-blending mode, fresnel does not affect amount of transparency
|
|
||||||
Transparent // Physically plausible transparency mode, implemented as alpha pre-multiply
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum SmoothnessMapChannel
|
|
||||||
{
|
|
||||||
SpecularMetallicAlpha,
|
|
||||||
AlbedoAlpha,
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class Styles
|
|
||||||
{
|
|
||||||
public static GUIStyle optionsButton = "PaneOptions";
|
|
||||||
public static GUIContent uvSetLabel = new GUIContent("UV Set");
|
|
||||||
public static GUIContent[] uvSetOptions = new GUIContent[] { new GUIContent("UV channel 0"), new GUIContent("UV channel 1") };
|
|
||||||
|
|
||||||
public static string emptyTootip = "";
|
|
||||||
public static GUIContent albedoText = new GUIContent("Albedo", "Albedo (RGB) and Transparency (A)");
|
|
||||||
public static GUIContent alphaCutoffText = new GUIContent("Alpha Cutoff", "Threshold for alpha cutoff");
|
|
||||||
public static GUIContent specularMapText = new GUIContent("Specular", "Specular (RGB) and Smoothness (A)");
|
|
||||||
public static GUIContent metallicMapText = new GUIContent("Metallic", "Metallic (R) and Smoothness (A)");
|
|
||||||
public static GUIContent smoothnessText = new GUIContent("Smoothness", "Smoothness value");
|
|
||||||
public static GUIContent smoothnessScaleText = new GUIContent("Smoothness", "Smoothness scale factor");
|
|
||||||
public static GUIContent smoothnessMapChannelText = new GUIContent("Source", "Smoothness texture and channel");
|
|
||||||
public static GUIContent highlightsText = new GUIContent("Specular Highlights", "Specular Highlights");
|
|
||||||
public static GUIContent reflectionsText = new GUIContent("Reflections", "Glossy Reflections");
|
|
||||||
public static GUIContent normalMapText = new GUIContent("Normal Map", "Normal Map");
|
|
||||||
public static GUIContent heightMapText = new GUIContent("Height Map", "Height Map (G)");
|
|
||||||
public static GUIContent occlusionText = new GUIContent("Occlusion", "Occlusion (G)");
|
|
||||||
public static GUIContent emissionText = new GUIContent("Emission", "Emission (RGB)");
|
|
||||||
public static GUIContent detailMaskText = new GUIContent("Detail Mask", "Mask for Secondary Maps (A)");
|
|
||||||
public static GUIContent detailAlbedoText = new GUIContent("Detail Albedo x2", "Albedo (RGB) multiplied by 2");
|
|
||||||
public static GUIContent detailNormalMapText = new GUIContent("Normal Map", "Normal Map");
|
|
||||||
|
|
||||||
public static string whiteSpaceString = " ";
|
|
||||||
public static string primaryMapsText = "Main Maps";
|
|
||||||
public static string secondaryMapsText = "Secondary Maps";
|
|
||||||
public static string forwardText = "Forward Rendering Options";
|
|
||||||
public static string renderingMode = "Rendering Mode";
|
|
||||||
public static GUIContent emissiveWarning = new GUIContent("Emissive value is animated but the material has not been configured to support emissive. Please make sure the material itself has some amount of emissive.");
|
|
||||||
public static GUIContent emissiveColorWarning = new GUIContent("Ensure emissive color is non-black for emission to have effect.");
|
|
||||||
public static readonly string[] blendNames = Enum.GetNames(typeof(BlendMode));
|
|
||||||
|
|
||||||
public static string bakeryText = "Bakery Options";
|
|
||||||
public static GUIContent doubleSidedLabel = new GUIContent("Double-sided", "Render both sides of triangles.");
|
|
||||||
public static GUIContent vertexLMLabel = new GUIContent("Allow Vertex Lightmaps", "Allows this material to use vertex lightmaps, if present.");
|
|
||||||
public static GUIContent vertexLMdirLabel = new GUIContent("Enable VertexLM directional", "Enables directional vertex lightmaps.");
|
|
||||||
public static GUIContent vertexLMSHLabel = new GUIContent("Enable VertexLM SH", "Enables SH vertex lightmaps.");
|
|
||||||
public static GUIContent vertexLMMaskLabel = new GUIContent("Enable VertexLM Shadowmask", "Enables per-vertex shadowmasks.");
|
|
||||||
public static GUIContent rnmLabel = new GUIContent("Allow RNM Lightmaps", "Allows this material to use RNM lightmaps, if present.");
|
|
||||||
public static GUIContent shLabel = new GUIContent("Allow SH Lightmaps", "Allows this material to use SH lightmaps, if present.");
|
|
||||||
public static GUIContent shnLabel = new GUIContent("Non-linear SH", "This option can enhance contrast (closer to ground truth), but it makes the shader a bit slower.");
|
|
||||||
public static GUIContent specLabel = new GUIContent("Enable Lightmap Specular", "Enables baked specular for all directional modes.");
|
|
||||||
public static GUIContent bicubicLabel = new GUIContent("Force Bicubic Filter", "Enables bicubic filtering for all lightmaps (color/shadowmask/direction/etc) used in the material.");
|
|
||||||
public static GUIContent pshnLabel = new GUIContent("Non-linear Light Probe SH", "Prevents negative values in light probes. This is recommended when baking probes in L1 mode. Can slow down the shader a bit.");
|
|
||||||
public static GUIContent volLabel = new GUIContent("Enable Volumes", "Enable usages of BakeryVolumes");
|
|
||||||
public static GUIContent volLabel0 = new GUIContent("Volume 0");
|
|
||||||
public static GUIContent volLabel1 = new GUIContent("Volume 1");
|
|
||||||
public static GUIContent volLabel2 = new GUIContent("Volume 2");
|
|
||||||
public static GUIContent volLabelMask = new GUIContent("Volume mask");
|
|
||||||
}
|
|
||||||
|
|
||||||
MaterialProperty blendMode = null;
|
|
||||||
MaterialProperty albedoMap = null;
|
|
||||||
MaterialProperty albedoColor = null;
|
|
||||||
MaterialProperty alphaCutoff = null;
|
|
||||||
MaterialProperty specularMap = null;
|
|
||||||
MaterialProperty specularColor = null;
|
|
||||||
MaterialProperty metallicMap = null;
|
|
||||||
MaterialProperty metallic = null;
|
|
||||||
MaterialProperty smoothness = null;
|
|
||||||
MaterialProperty smoothnessScale = null;
|
|
||||||
MaterialProperty smoothnessMapChannel = null;
|
|
||||||
MaterialProperty highlights = null;
|
|
||||||
MaterialProperty reflections = null;
|
|
||||||
MaterialProperty bumpScale = null;
|
|
||||||
MaterialProperty bumpMap = null;
|
|
||||||
MaterialProperty occlusionStrength = null;
|
|
||||||
MaterialProperty occlusionMap = null;
|
|
||||||
MaterialProperty heigtMapScale = null;
|
|
||||||
MaterialProperty heightMap = null;
|
|
||||||
MaterialProperty emissionColorForRendering = null;
|
|
||||||
MaterialProperty emissionMap = null;
|
|
||||||
MaterialProperty detailMask = null;
|
|
||||||
MaterialProperty detailAlbedoMap = null;
|
|
||||||
MaterialProperty detailNormalMapScale = null;
|
|
||||||
MaterialProperty detailNormalMap = null;
|
|
||||||
MaterialProperty uvSetSecondary = null;
|
|
||||||
MaterialProperty enableDoubleSided = null;
|
|
||||||
MaterialProperty enableDoubleSidedOn = null;
|
|
||||||
MaterialProperty enableVertexLM = null;
|
|
||||||
MaterialProperty enableVertexLMdir = null;
|
|
||||||
MaterialProperty enableVertexLMSH = null;
|
|
||||||
MaterialProperty enableVertexLMmask = null;
|
|
||||||
MaterialProperty enableSH = null;
|
|
||||||
MaterialProperty enableSHN = null;
|
|
||||||
MaterialProperty enableRNM = null;
|
|
||||||
MaterialProperty enableSpec = null;
|
|
||||||
MaterialProperty enableBicubic = null;
|
|
||||||
MaterialProperty enablePSHN = null;
|
|
||||||
MaterialProperty enableVolumes = null;
|
|
||||||
MaterialProperty volume0 = null;
|
|
||||||
MaterialProperty volume1 = null;
|
|
||||||
MaterialProperty volume2 = null;
|
|
||||||
MaterialProperty volumeMask = null;
|
|
||||||
MaterialProperty volumeMin = null;
|
|
||||||
MaterialProperty volumeInvSize = null;
|
|
||||||
|
|
||||||
BakeryVolume assignedVolume = null;
|
|
||||||
|
|
||||||
MaterialEditor m_MaterialEditor;
|
|
||||||
WorkflowMode m_WorkflowMode = WorkflowMode.Specular;
|
|
||||||
ColorPickerHDRConfig m_ColorPickerHDRConfig = new ColorPickerHDRConfig(0f, 99f, 1 / 99f, 3f);
|
|
||||||
|
|
||||||
bool m_FirstTimeApply = true;
|
|
||||||
|
|
||||||
public void FindProperties(MaterialProperty[] props)
|
|
||||||
{
|
|
||||||
blendMode = FindProperty("_Mode", props);
|
|
||||||
albedoMap = FindProperty("_MainTex", props);
|
|
||||||
albedoColor = FindProperty("_Color", props);
|
|
||||||
alphaCutoff = FindProperty("_Cutoff", props);
|
|
||||||
specularMap = FindProperty("_SpecGlossMap", props, false);
|
|
||||||
specularColor = FindProperty("_SpecColor", props, false);
|
|
||||||
metallicMap = FindProperty("_MetallicGlossMap", props, false);
|
|
||||||
metallic = FindProperty("_Metallic", props, false);
|
|
||||||
if (specularMap != null && specularColor != null)
|
|
||||||
m_WorkflowMode = WorkflowMode.Specular;
|
|
||||||
else if (metallicMap != null && metallic != null)
|
|
||||||
m_WorkflowMode = WorkflowMode.Metallic;
|
|
||||||
else
|
|
||||||
m_WorkflowMode = WorkflowMode.Dielectric;
|
|
||||||
smoothness = FindProperty("_Glossiness", props);
|
|
||||||
smoothnessScale = FindProperty("_GlossMapScale", props, false);
|
|
||||||
smoothnessMapChannel = FindProperty("_SmoothnessTextureChannel", props, false);
|
|
||||||
highlights = FindProperty("_SpecularHighlights", props, false);
|
|
||||||
reflections = FindProperty("_GlossyReflections", props, false);
|
|
||||||
bumpScale = FindProperty("_BumpScale", props);
|
|
||||||
bumpMap = FindProperty("_BumpMap", props);
|
|
||||||
heigtMapScale = FindProperty("_Parallax", props);
|
|
||||||
heightMap = FindProperty("_ParallaxMap", props);
|
|
||||||
occlusionStrength = FindProperty("_OcclusionStrength", props);
|
|
||||||
occlusionMap = FindProperty("_OcclusionMap", props);
|
|
||||||
emissionColorForRendering = FindProperty("_EmissionColor", props);
|
|
||||||
emissionMap = FindProperty("_EmissionMap", props);
|
|
||||||
detailMask = FindProperty("_DetailMask", props);
|
|
||||||
detailAlbedoMap = FindProperty("_DetailAlbedoMap", props);
|
|
||||||
detailNormalMapScale = FindProperty("_DetailNormalMapScale", props);
|
|
||||||
detailNormalMap = FindProperty("_DetailNormalMap", props);
|
|
||||||
uvSetSecondary = FindProperty("_UVSec", props);
|
|
||||||
enableDoubleSided = FindProperty("_BAKERY_2SIDED", props);
|
|
||||||
enableDoubleSidedOn = FindProperty("_BAKERY_2SIDEDON", props);
|
|
||||||
enableVertexLM = FindProperty("_BAKERY_VERTEXLM", props);
|
|
||||||
enableVertexLMdir = FindProperty("_BAKERY_VERTEXLMDIR", props);
|
|
||||||
enableVertexLMSH = FindProperty("_BAKERY_VERTEXLMSH", props);
|
|
||||||
enableVertexLMmask = FindProperty("_BAKERY_VERTEXLMMASK", props);
|
|
||||||
enableSH = FindProperty("_BAKERY_SH", props);
|
|
||||||
enableSHN = FindProperty("_BAKERY_SHNONLINEAR", props);
|
|
||||||
enableRNM = FindProperty("_BAKERY_RNM", props);
|
|
||||||
enableSpec = FindProperty("_BAKERY_LMSPEC", props);
|
|
||||||
enableBicubic = FindProperty("_BAKERY_BICUBIC", props);
|
|
||||||
enablePSHN = FindProperty("_BAKERY_PROBESHNONLINEAR", props);
|
|
||||||
enableVolumes = FindProperty("_BAKERY_VOLUME", props);
|
|
||||||
volume0 = FindProperty("_Volume0", props);
|
|
||||||
volume1 = FindProperty("_Volume1", props);
|
|
||||||
volume2 = FindProperty("_Volume2", props);
|
|
||||||
volumeMask = FindProperty("_VolumeMask", props);
|
|
||||||
volumeMin = FindProperty("_VolumeMin", props);
|
|
||||||
volumeInvSize = FindProperty("_VolumeInvSize", props);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] props)
|
|
||||||
{
|
|
||||||
FindProperties(props); // MaterialProperties can be animated so we do not cache them but fetch them every event to ensure animated values are updated correctly
|
|
||||||
m_MaterialEditor = materialEditor;
|
|
||||||
Material material = materialEditor.target as Material;
|
|
||||||
|
|
||||||
// Make sure that needed keywords are set up if we're switching some existing
|
|
||||||
// material to a standard shader.
|
|
||||||
if (m_FirstTimeApply)
|
|
||||||
{
|
|
||||||
SetMaterialKeywords(material, m_WorkflowMode);
|
|
||||||
m_FirstTimeApply = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
ShaderPropertiesGUI(material);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ShaderPropertiesGUI(Material material)
|
|
||||||
{
|
|
||||||
// Use default labelWidth
|
|
||||||
EditorGUIUtility.labelWidth = 0f;
|
|
||||||
|
|
||||||
// Detect any changes to the material
|
|
||||||
EditorGUI.BeginChangeCheck();
|
|
||||||
{
|
|
||||||
BlendModePopup();
|
|
||||||
|
|
||||||
// Primary properties
|
|
||||||
GUILayout.Label(Styles.primaryMapsText, EditorStyles.boldLabel);
|
|
||||||
DoAlbedoArea(material);
|
|
||||||
DoSpecularMetallicArea();
|
|
||||||
m_MaterialEditor.TexturePropertySingleLine(Styles.normalMapText, bumpMap, bumpMap.textureValue != null ? bumpScale : null);
|
|
||||||
m_MaterialEditor.TexturePropertySingleLine(Styles.heightMapText, heightMap, heightMap.textureValue != null ? heigtMapScale : null);
|
|
||||||
m_MaterialEditor.TexturePropertySingleLine(Styles.occlusionText, occlusionMap, occlusionMap.textureValue != null ? occlusionStrength : null);
|
|
||||||
DoEmissionArea(material);
|
|
||||||
m_MaterialEditor.TexturePropertySingleLine(Styles.detailMaskText, detailMask);
|
|
||||||
EditorGUI.BeginChangeCheck();
|
|
||||||
m_MaterialEditor.TextureScaleOffsetProperty(albedoMap);
|
|
||||||
if (EditorGUI.EndChangeCheck())
|
|
||||||
{
|
|
||||||
emissionMap.textureScaleAndOffset = albedoMap.textureScaleAndOffset; // Apply the main texture scale and offset to the emission texture as well, for Enlighten's sake
|
|
||||||
}
|
|
||||||
|
|
||||||
EditorGUILayout.Space();
|
|
||||||
|
|
||||||
// Secondary properties
|
|
||||||
GUILayout.Label(Styles.secondaryMapsText, EditorStyles.boldLabel);
|
|
||||||
m_MaterialEditor.TexturePropertySingleLine(Styles.detailAlbedoText, detailAlbedoMap);
|
|
||||||
m_MaterialEditor.TexturePropertySingleLine(Styles.detailNormalMapText, detailNormalMap, detailNormalMapScale);
|
|
||||||
m_MaterialEditor.TextureScaleOffsetProperty(detailAlbedoMap);
|
|
||||||
m_MaterialEditor.ShaderProperty(uvSetSecondary, Styles.uvSetLabel.text);
|
|
||||||
|
|
||||||
// Third properties
|
|
||||||
GUILayout.Label(Styles.forwardText, EditorStyles.boldLabel);
|
|
||||||
if (highlights != null)
|
|
||||||
m_MaterialEditor.ShaderProperty(highlights, Styles.highlightsText);
|
|
||||||
if (reflections != null)
|
|
||||||
m_MaterialEditor.ShaderProperty(reflections, Styles.reflectionsText);
|
|
||||||
|
|
||||||
GUILayout.Label(Styles.bakeryText, EditorStyles.boldLabel);
|
|
||||||
|
|
||||||
m_MaterialEditor.ShaderProperty(enableDoubleSidedOn, Styles.doubleSidedLabel);
|
|
||||||
enableDoubleSided.floatValue = enableDoubleSidedOn.floatValue > 0 ? 0 : 2;
|
|
||||||
|
|
||||||
m_MaterialEditor.ShaderProperty(enableVertexLM, Styles.vertexLMLabel);
|
|
||||||
if (enableVertexLM.floatValue > 0)
|
|
||||||
{
|
|
||||||
m_MaterialEditor.ShaderProperty(enableVertexLMdir, Styles.vertexLMdirLabel);
|
|
||||||
//if (enableVertexLMdir.floatValue > 0) enableVertexLMSH.floatValue = 0;
|
|
||||||
}
|
|
||||||
if (enableVertexLM.floatValue > 0)
|
|
||||||
{
|
|
||||||
m_MaterialEditor.ShaderProperty(enableVertexLMSH, Styles.vertexLMSHLabel);
|
|
||||||
//if (enableVertexLMSH.floatValue > 0) enableVertexLMdir.floatValue = 0;
|
|
||||||
}
|
|
||||||
if (enableVertexLM.floatValue > 0)
|
|
||||||
{
|
|
||||||
m_MaterialEditor.ShaderProperty(enableVertexLMmask, Styles.vertexLMMaskLabel);
|
|
||||||
}
|
|
||||||
m_MaterialEditor.ShaderProperty(enableRNM, Styles.rnmLabel);
|
|
||||||
m_MaterialEditor.ShaderProperty(enableSH, Styles.shLabel);
|
|
||||||
if (enableSH.floatValue > 0 || enableVertexLMSH.floatValue > 0)
|
|
||||||
m_MaterialEditor.ShaderProperty(enableSHN, Styles.shnLabel);
|
|
||||||
m_MaterialEditor.ShaderProperty(enableSpec, Styles.specLabel);
|
|
||||||
m_MaterialEditor.ShaderProperty(enableBicubic, Styles.bicubicLabel);
|
|
||||||
m_MaterialEditor.ShaderProperty(enablePSHN, Styles.pshnLabel);
|
|
||||||
|
|
||||||
m_MaterialEditor.ShaderProperty(enableVolumes, Styles.volLabel);
|
|
||||||
if (enableVolumes.floatValue > 0)
|
|
||||||
{
|
|
||||||
var prevAssignedVolume = assignedVolume;
|
|
||||||
assignedVolume = EditorGUILayout.ObjectField(volume0.textureValue == null ? "Assign volume" : "Assign different volume", assignedVolume, typeof(BakeryVolume), true) as BakeryVolume;
|
|
||||||
if (prevAssignedVolume != assignedVolume)
|
|
||||||
{
|
|
||||||
volume0.textureValue = assignedVolume.bakedTexture0;
|
|
||||||
volume1.textureValue = assignedVolume.bakedTexture1;
|
|
||||||
volume2.textureValue = assignedVolume.bakedTexture2;
|
|
||||||
volumeMask.textureValue = assignedVolume.bakedMask;
|
|
||||||
var b = assignedVolume.bounds;
|
|
||||||
volumeMin.vectorValue = b.min;
|
|
||||||
volumeInvSize.vectorValue = new Vector3(1.0f/b.size.x, 1.0f/b.size.y, 1.0f/b.size.z);
|
|
||||||
assignedVolume = null;
|
|
||||||
}
|
|
||||||
if (volume0.textureValue != null)
|
|
||||||
{
|
|
||||||
if (GUILayout.Button("Unset volume"))
|
|
||||||
{
|
|
||||||
volume0.textureValue = null;
|
|
||||||
volume1.textureValue = null;
|
|
||||||
volume2.textureValue = null;
|
|
||||||
volumeMask.textureValue = null;
|
|
||||||
volumeMin.vectorValue = Vector3.zero;
|
|
||||||
volumeInvSize.vectorValue = Vector3.one * 1000001;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
EditorGUILayout.LabelField("Current Volume: " + (volume0.textureValue == null ? "<none or global>" : volume0.textureValue.name.Substring(0, volume0.textureValue.name.Length-1)));
|
|
||||||
EditorGUI.BeginDisabledGroup(true);
|
|
||||||
m_MaterialEditor.TexturePropertySingleLine(Styles.volLabel0, volume0);
|
|
||||||
m_MaterialEditor.TexturePropertySingleLine(Styles.volLabel1, volume1);
|
|
||||||
m_MaterialEditor.TexturePropertySingleLine(Styles.volLabel2, volume2);
|
|
||||||
m_MaterialEditor.TexturePropertySingleLine(Styles.volLabelMask, volumeMask);
|
|
||||||
var bmin4 = volumeMin.vectorValue;
|
|
||||||
var bmin = new Vector3(bmin4.x, bmin4.y, bmin4.z);
|
|
||||||
var invSize = volumeInvSize.vectorValue;
|
|
||||||
var bmax = new Vector3(1.0f/invSize.x + bmin.x, 1.0f/invSize.y + bmin.y, 1.0f/invSize.z + bmin.z);
|
|
||||||
EditorGUILayout.LabelField("Min: " + bmin);
|
|
||||||
EditorGUILayout.LabelField("Max: " + bmax);
|
|
||||||
EditorGUI.EndDisabledGroup();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
EditorGUILayout.Space();
|
|
||||||
}
|
|
||||||
if (EditorGUI.EndChangeCheck())
|
|
||||||
{
|
|
||||||
foreach (var obj in blendMode.targets)
|
|
||||||
MaterialChanged((Material)obj, m_WorkflowMode);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal void DetermineWorkflow(MaterialProperty[] props)
|
|
||||||
{
|
|
||||||
if (FindProperty("_SpecGlossMap", props, false) != null && FindProperty("_SpecColor", props, false) != null)
|
|
||||||
m_WorkflowMode = WorkflowMode.Specular;
|
|
||||||
else if (FindProperty("_MetallicGlossMap", props, false) != null && FindProperty("_Metallic", props, false) != null)
|
|
||||||
m_WorkflowMode = WorkflowMode.Metallic;
|
|
||||||
else
|
|
||||||
m_WorkflowMode = WorkflowMode.Dielectric;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void AssignNewShaderToMaterial(Material material, Shader oldShader, Shader newShader)
|
|
||||||
{
|
|
||||||
// _Emission property is lost after assigning Standard shader to the material
|
|
||||||
// thus transfer it before assigning the new shader
|
|
||||||
if (material.HasProperty("_Emission"))
|
|
||||||
{
|
|
||||||
material.SetColor("_EmissionColor", material.GetColor("_Emission"));
|
|
||||||
}
|
|
||||||
|
|
||||||
base.AssignNewShaderToMaterial(material, oldShader, newShader);
|
|
||||||
|
|
||||||
if (oldShader == null || !oldShader.name.Contains("Legacy Shaders/"))
|
|
||||||
{
|
|
||||||
SetupMaterialWithBlendMode(material, (BlendMode)material.GetFloat("_Mode"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
BlendMode blendMode = BlendMode.Opaque;
|
|
||||||
if (oldShader.name.Contains("/Transparent/Cutout/"))
|
|
||||||
{
|
|
||||||
blendMode = BlendMode.Cutout;
|
|
||||||
}
|
|
||||||
else if (oldShader.name.Contains("/Transparent/"))
|
|
||||||
{
|
|
||||||
// NOTE: legacy shaders did not provide physically based transparency
|
|
||||||
// therefore Fade mode
|
|
||||||
blendMode = BlendMode.Fade;
|
|
||||||
}
|
|
||||||
material.SetFloat("_Mode", (float)blendMode);
|
|
||||||
|
|
||||||
DetermineWorkflow(MaterialEditor.GetMaterialProperties(new Material[] { material }));
|
|
||||||
MaterialChanged(material, m_WorkflowMode);
|
|
||||||
}
|
|
||||||
|
|
||||||
void BlendModePopup()
|
|
||||||
{
|
|
||||||
EditorGUI.showMixedValue = blendMode.hasMixedValue;
|
|
||||||
var mode = (BlendMode)blendMode.floatValue;
|
|
||||||
|
|
||||||
EditorGUI.BeginChangeCheck();
|
|
||||||
mode = (BlendMode)EditorGUILayout.Popup(Styles.renderingMode, (int)mode, Styles.blendNames);
|
|
||||||
if (EditorGUI.EndChangeCheck())
|
|
||||||
{
|
|
||||||
m_MaterialEditor.RegisterPropertyChangeUndo("Rendering Mode");
|
|
||||||
blendMode.floatValue = (float)mode;
|
|
||||||
}
|
|
||||||
|
|
||||||
EditorGUI.showMixedValue = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void DoAlbedoArea(Material material)
|
|
||||||
{
|
|
||||||
m_MaterialEditor.TexturePropertySingleLine(Styles.albedoText, albedoMap, albedoColor);
|
|
||||||
if (((BlendMode)material.GetFloat("_Mode") == BlendMode.Cutout))
|
|
||||||
{
|
|
||||||
m_MaterialEditor.ShaderProperty(alphaCutoff, Styles.alphaCutoffText.text, MaterialEditor.kMiniTextureFieldLabelIndentLevel + 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void DoEmissionArea(Material material)
|
|
||||||
{
|
|
||||||
bool showHelpBox = !HasValidEmissiveKeyword(material);
|
|
||||||
|
|
||||||
bool hadEmissionTexture = emissionMap.textureValue != null;
|
|
||||||
|
|
||||||
// Texture and HDR color controls
|
|
||||||
m_MaterialEditor.TexturePropertyWithHDRColor(Styles.emissionText, emissionMap, emissionColorForRendering, m_ColorPickerHDRConfig, false);
|
|
||||||
|
|
||||||
// If texture was assigned and color was black set color to white
|
|
||||||
float brightness = emissionColorForRendering.colorValue.maxColorComponent;
|
|
||||||
if (emissionMap.textureValue != null && !hadEmissionTexture && brightness <= 0f)
|
|
||||||
emissionColorForRendering.colorValue = Color.white;
|
|
||||||
|
|
||||||
// Emission for GI?
|
|
||||||
m_MaterialEditor.LightmapEmissionProperty(MaterialEditor.kMiniTextureFieldLabelIndentLevel + 1);
|
|
||||||
|
|
||||||
if (showHelpBox)
|
|
||||||
{
|
|
||||||
EditorGUILayout.HelpBox(Styles.emissiveWarning.text, MessageType.Warning);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void DoSpecularMetallicArea()
|
|
||||||
{
|
|
||||||
bool hasGlossMap = false;
|
|
||||||
if (m_WorkflowMode == WorkflowMode.Specular)
|
|
||||||
{
|
|
||||||
hasGlossMap = specularMap.textureValue != null;
|
|
||||||
m_MaterialEditor.TexturePropertySingleLine(Styles.specularMapText, specularMap, hasGlossMap ? null : specularColor);
|
|
||||||
}
|
|
||||||
else if (m_WorkflowMode == WorkflowMode.Metallic)
|
|
||||||
{
|
|
||||||
hasGlossMap = metallicMap.textureValue != null;
|
|
||||||
m_MaterialEditor.TexturePropertySingleLine(Styles.metallicMapText, metallicMap, hasGlossMap ? null : metallic);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool showSmoothnessScale = hasGlossMap;
|
|
||||||
if (smoothnessMapChannel != null)
|
|
||||||
{
|
|
||||||
int smoothnessChannel = (int)smoothnessMapChannel.floatValue;
|
|
||||||
if (smoothnessChannel == (int)SmoothnessMapChannel.AlbedoAlpha)
|
|
||||||
showSmoothnessScale = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
int indentation = 2; // align with labels of texture properties
|
|
||||||
m_MaterialEditor.ShaderProperty(showSmoothnessScale ? smoothnessScale : smoothness, showSmoothnessScale ? Styles.smoothnessScaleText : Styles.smoothnessText, indentation);
|
|
||||||
|
|
||||||
++indentation;
|
|
||||||
if (smoothnessMapChannel != null)
|
|
||||||
m_MaterialEditor.ShaderProperty(smoothnessMapChannel, Styles.smoothnessMapChannelText, indentation);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void SetupMaterialWithBlendMode(Material material, BlendMode blendMode)
|
|
||||||
{
|
|
||||||
switch (blendMode)
|
|
||||||
{
|
|
||||||
case BlendMode.Opaque:
|
|
||||||
material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One);
|
|
||||||
material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero);
|
|
||||||
material.SetInt("_ZWrite", 1);
|
|
||||||
material.DisableKeyword("_ALPHATEST_ON");
|
|
||||||
material.DisableKeyword("_ALPHABLEND_ON");
|
|
||||||
material.DisableKeyword("_ALPHAPREMULTIPLY_ON");
|
|
||||||
material.renderQueue = -1;
|
|
||||||
break;
|
|
||||||
case BlendMode.Cutout:
|
|
||||||
material.SetOverrideTag("RenderType", "TransparentCutout");
|
|
||||||
material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One);
|
|
||||||
material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero);
|
|
||||||
material.SetInt("_ZWrite", 1);
|
|
||||||
material.EnableKeyword("_ALPHATEST_ON");
|
|
||||||
material.DisableKeyword("_ALPHABLEND_ON");
|
|
||||||
material.DisableKeyword("_ALPHAPREMULTIPLY_ON");
|
|
||||||
material.renderQueue = (int)UnityEngine.Rendering.RenderQueue.AlphaTest;
|
|
||||||
break;
|
|
||||||
case BlendMode.Fade:
|
|
||||||
material.SetOverrideTag("RenderType", "Transparent");
|
|
||||||
material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha);
|
|
||||||
material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);
|
|
||||||
material.SetInt("_ZWrite", 0);
|
|
||||||
material.DisableKeyword("_ALPHATEST_ON");
|
|
||||||
material.EnableKeyword("_ALPHABLEND_ON");
|
|
||||||
material.DisableKeyword("_ALPHAPREMULTIPLY_ON");
|
|
||||||
material.renderQueue = (int)UnityEngine.Rendering.RenderQueue.Transparent;
|
|
||||||
break;
|
|
||||||
case BlendMode.Transparent:
|
|
||||||
material.SetOverrideTag("RenderType", "Transparent");
|
|
||||||
material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One);
|
|
||||||
material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);
|
|
||||||
material.SetInt("_ZWrite", 0);
|
|
||||||
material.DisableKeyword("_ALPHATEST_ON");
|
|
||||||
material.DisableKeyword("_ALPHABLEND_ON");
|
|
||||||
material.EnableKeyword("_ALPHAPREMULTIPLY_ON");
|
|
||||||
material.renderQueue = (int)UnityEngine.Rendering.RenderQueue.Transparent;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static SmoothnessMapChannel GetSmoothnessMapChannel(Material material)
|
|
||||||
{
|
|
||||||
int ch = (int)material.GetFloat("_SmoothnessTextureChannel");
|
|
||||||
if (ch == (int)SmoothnessMapChannel.AlbedoAlpha)
|
|
||||||
return SmoothnessMapChannel.AlbedoAlpha;
|
|
||||||
else
|
|
||||||
return SmoothnessMapChannel.SpecularMetallicAlpha;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool ShouldEmissionBeEnabled(Material mat, Color color)
|
|
||||||
{
|
|
||||||
var realtimeEmission = (mat.globalIlluminationFlags & MaterialGlobalIlluminationFlags.RealtimeEmissive) > 0;
|
|
||||||
return color.maxColorComponent > 0.1f / 255.0f || realtimeEmission;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void SetMaterialKeywords(Material material, WorkflowMode workflowMode)
|
|
||||||
{
|
|
||||||
// Note: keywords must be based on Material value not on MaterialProperty due to multi-edit & material animation
|
|
||||||
// (MaterialProperty value might come from renderer material property block)
|
|
||||||
SetKeyword(material, "_NORMALMAP", material.GetTexture("_BumpMap") || material.GetTexture("_DetailNormalMap"));
|
|
||||||
if (workflowMode == WorkflowMode.Specular)
|
|
||||||
SetKeyword(material, "_SPECGLOSSMAP", material.GetTexture("_SpecGlossMap"));
|
|
||||||
else if (workflowMode == WorkflowMode.Metallic)
|
|
||||||
SetKeyword(material, "_METALLICGLOSSMAP", material.GetTexture("_MetallicGlossMap"));
|
|
||||||
SetKeyword(material, "_PARALLAXMAP", material.GetTexture("_ParallaxMap"));
|
|
||||||
SetKeyword(material, "_DETAIL_MULX2", material.GetTexture("_DetailAlbedoMap") || material.GetTexture("_DetailNormalMap"));
|
|
||||||
|
|
||||||
bool shouldEmissionBeEnabled = ShouldEmissionBeEnabled(material, material.GetColor("_EmissionColor"));
|
|
||||||
SetKeyword(material, "_EMISSION", shouldEmissionBeEnabled);
|
|
||||||
|
|
||||||
if (material.HasProperty("_SmoothnessTextureChannel"))
|
|
||||||
{
|
|
||||||
SetKeyword(material, "_SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A", GetSmoothnessMapChannel(material) == SmoothnessMapChannel.AlbedoAlpha);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Setup lightmap emissive flags
|
|
||||||
MaterialGlobalIlluminationFlags flags = material.globalIlluminationFlags;
|
|
||||||
if ((flags & (MaterialGlobalIlluminationFlags.BakedEmissive | MaterialGlobalIlluminationFlags.RealtimeEmissive)) != 0)
|
|
||||||
{
|
|
||||||
flags &= ~MaterialGlobalIlluminationFlags.EmissiveIsBlack;
|
|
||||||
if (!shouldEmissionBeEnabled)
|
|
||||||
flags |= MaterialGlobalIlluminationFlags.EmissiveIsBlack;
|
|
||||||
|
|
||||||
material.globalIlluminationFlags = flags;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool HasValidEmissiveKeyword(Material material)
|
|
||||||
{
|
|
||||||
// Material animation might be out of sync with the material keyword.
|
|
||||||
// So if the emission support is disabled on the material, but the property blocks have a value that requires it, then we need to show a warning.
|
|
||||||
// (note: (Renderer MaterialPropertyBlock applies its values to emissionColorForRendering))
|
|
||||||
bool hasEmissionKeyword = material.IsKeywordEnabled("_EMISSION");
|
|
||||||
if (!hasEmissionKeyword && ShouldEmissionBeEnabled(material, emissionColorForRendering.colorValue))
|
|
||||||
return false;
|
|
||||||
else
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void MaterialChanged(Material material, WorkflowMode workflowMode)
|
|
||||||
{
|
|
||||||
SetupMaterialWithBlendMode(material, (BlendMode)material.GetFloat("_Mode"));
|
|
||||||
|
|
||||||
SetMaterialKeywords(material, workflowMode);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void SetKeyword(Material m, string keyword, bool state)
|
|
||||||
{
|
|
||||||
if (state)
|
|
||||||
m.EnableKeyword(keyword);
|
|
||||||
else
|
|
||||||
m.DisableKeyword(keyword);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,12 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 0465c9a9a7404f34fadd23fd32de6557
|
|
||||||
timeCreated: 1538411297
|
|
||||||
licenseType: Store
|
|
||||||
MonoImporter:
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: c08e497195d12e540b500a31facdec9b
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
Binary file not shown.
@ -1,108 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: ca8aea84a9827be4f864faaced835c8b
|
|
||||||
TextureImporter:
|
|
||||||
internalIDToNameTable: []
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 11
|
|
||||||
mipmaps:
|
|
||||||
mipMapMode: 0
|
|
||||||
enableMipMap: 0
|
|
||||||
sRGBTexture: 1
|
|
||||||
linearTexture: 0
|
|
||||||
fadeOut: 0
|
|
||||||
borderMipMap: 0
|
|
||||||
mipMapsPreserveCoverage: 0
|
|
||||||
alphaTestReferenceValue: 0.5
|
|
||||||
mipMapFadeDistanceStart: 1
|
|
||||||
mipMapFadeDistanceEnd: 3
|
|
||||||
bumpmap:
|
|
||||||
convertToNormalMap: 0
|
|
||||||
externalNormalMap: 0
|
|
||||||
heightScale: 0.25
|
|
||||||
normalMapFilter: 0
|
|
||||||
isReadable: 0
|
|
||||||
streamingMipmaps: 0
|
|
||||||
streamingMipmapsPriority: 0
|
|
||||||
vTOnly: 0
|
|
||||||
grayScaleToAlpha: 0
|
|
||||||
generateCubemap: 6
|
|
||||||
cubemapConvolution: 0
|
|
||||||
seamlessCubemap: 0
|
|
||||||
textureFormat: 1
|
|
||||||
maxTextureSize: 2048
|
|
||||||
textureSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
filterMode: 2
|
|
||||||
aniso: -1
|
|
||||||
mipBias: -100
|
|
||||||
wrapU: 1
|
|
||||||
wrapV: 1
|
|
||||||
wrapW: 1
|
|
||||||
nPOTScale: 1
|
|
||||||
lightmap: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
spriteMode: 0
|
|
||||||
spriteExtrude: 1
|
|
||||||
spriteMeshType: 1
|
|
||||||
alignment: 0
|
|
||||||
spritePivot: {x: 0.5, y: 0.5}
|
|
||||||
spritePixelsToUnits: 100
|
|
||||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
spriteGenerateFallbackPhysicsShape: 1
|
|
||||||
alphaUsage: 0
|
|
||||||
alphaIsTransparency: 0
|
|
||||||
spriteTessellationDetail: -1
|
|
||||||
textureType: 6
|
|
||||||
textureShape: 1
|
|
||||||
singleChannelComponent: 0
|
|
||||||
flipbookRows: 1
|
|
||||||
flipbookColumns: 1
|
|
||||||
maxTextureSizeSet: 0
|
|
||||||
compressionQualitySet: 0
|
|
||||||
textureFormatSet: 0
|
|
||||||
ignorePngGamma: 0
|
|
||||||
applyGammaDecoding: 0
|
|
||||||
platformSettings:
|
|
||||||
- serializedVersion: 3
|
|
||||||
buildTarget: DefaultTexturePlatform
|
|
||||||
maxTextureSize: 1024
|
|
||||||
resizeAlgorithm: 0
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
androidETC2FallbackOverride: 0
|
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
||||||
- serializedVersion: 3
|
|
||||||
buildTarget: Standalone
|
|
||||||
maxTextureSize: 4096
|
|
||||||
resizeAlgorithm: 0
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
androidETC2FallbackOverride: 0
|
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
||||||
spriteSheet:
|
|
||||||
serializedVersion: 2
|
|
||||||
sprites: []
|
|
||||||
outline: []
|
|
||||||
physicsShape: []
|
|
||||||
bones: []
|
|
||||||
spriteID:
|
|
||||||
internalID: 0
|
|
||||||
vertices: []
|
|
||||||
indices:
|
|
||||||
edges: []
|
|
||||||
weights: []
|
|
||||||
secondaryTextures: []
|
|
||||||
spritePackingTag:
|
|
||||||
pSDRemoveMatte: 0
|
|
||||||
pSDShowRemoveMatteOption: 0
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
Binary file not shown.
@ -1,96 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 08982e8cb456ac840842e4682e433fb4
|
|
||||||
TextureImporter:
|
|
||||||
internalIDToNameTable: []
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 11
|
|
||||||
mipmaps:
|
|
||||||
mipMapMode: 0
|
|
||||||
enableMipMap: 0
|
|
||||||
sRGBTexture: 1
|
|
||||||
linearTexture: 0
|
|
||||||
fadeOut: 0
|
|
||||||
borderMipMap: 0
|
|
||||||
mipMapsPreserveCoverage: 0
|
|
||||||
alphaTestReferenceValue: 0.5
|
|
||||||
mipMapFadeDistanceStart: 1
|
|
||||||
mipMapFadeDistanceEnd: 3
|
|
||||||
bumpmap:
|
|
||||||
convertToNormalMap: 0
|
|
||||||
externalNormalMap: 0
|
|
||||||
heightScale: 0.25
|
|
||||||
normalMapFilter: 0
|
|
||||||
isReadable: 0
|
|
||||||
streamingMipmaps: 0
|
|
||||||
streamingMipmapsPriority: 0
|
|
||||||
vTOnly: 0
|
|
||||||
grayScaleToAlpha: 0
|
|
||||||
generateCubemap: 6
|
|
||||||
cubemapConvolution: 0
|
|
||||||
seamlessCubemap: 0
|
|
||||||
textureFormat: 1
|
|
||||||
maxTextureSize: 2048
|
|
||||||
textureSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
filterMode: -1
|
|
||||||
aniso: -1
|
|
||||||
mipBias: -100
|
|
||||||
wrapU: 1
|
|
||||||
wrapV: 1
|
|
||||||
wrapW: 1
|
|
||||||
nPOTScale: 1
|
|
||||||
lightmap: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
spriteMode: 0
|
|
||||||
spriteExtrude: 1
|
|
||||||
spriteMeshType: 1
|
|
||||||
alignment: 0
|
|
||||||
spritePivot: {x: 0.5, y: 0.5}
|
|
||||||
spritePixelsToUnits: 100
|
|
||||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
spriteGenerateFallbackPhysicsShape: 1
|
|
||||||
alphaUsage: 0
|
|
||||||
alphaIsTransparency: 0
|
|
||||||
spriteTessellationDetail: -1
|
|
||||||
textureType: 6
|
|
||||||
textureShape: 1
|
|
||||||
singleChannelComponent: 0
|
|
||||||
flipbookRows: 1
|
|
||||||
flipbookColumns: 1
|
|
||||||
maxTextureSizeSet: 0
|
|
||||||
compressionQualitySet: 0
|
|
||||||
textureFormatSet: 0
|
|
||||||
ignorePngGamma: 0
|
|
||||||
applyGammaDecoding: 0
|
|
||||||
platformSettings:
|
|
||||||
- serializedVersion: 3
|
|
||||||
buildTarget: DefaultTexturePlatform
|
|
||||||
maxTextureSize: 1024
|
|
||||||
resizeAlgorithm: 0
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 1
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
androidETC2FallbackOverride: 0
|
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
||||||
spriteSheet:
|
|
||||||
serializedVersion: 2
|
|
||||||
sprites: []
|
|
||||||
outline: []
|
|
||||||
physicsShape: []
|
|
||||||
bones: []
|
|
||||||
spriteID:
|
|
||||||
internalID: 0
|
|
||||||
vertices: []
|
|
||||||
indices:
|
|
||||||
edges: []
|
|
||||||
weights: []
|
|
||||||
secondaryTextures: []
|
|
||||||
spritePackingTag:
|
|
||||||
pSDRemoveMatte: 0
|
|
||||||
pSDShowRemoveMatteOption: 0
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
Binary file not shown.
@ -1,96 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: c8234e06fb3795347b624dc91971980a
|
|
||||||
TextureImporter:
|
|
||||||
internalIDToNameTable: []
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 11
|
|
||||||
mipmaps:
|
|
||||||
mipMapMode: 0
|
|
||||||
enableMipMap: 0
|
|
||||||
sRGBTexture: 1
|
|
||||||
linearTexture: 0
|
|
||||||
fadeOut: 0
|
|
||||||
borderMipMap: 0
|
|
||||||
mipMapsPreserveCoverage: 0
|
|
||||||
alphaTestReferenceValue: 0.5
|
|
||||||
mipMapFadeDistanceStart: 1
|
|
||||||
mipMapFadeDistanceEnd: 3
|
|
||||||
bumpmap:
|
|
||||||
convertToNormalMap: 0
|
|
||||||
externalNormalMap: 0
|
|
||||||
heightScale: 0.25
|
|
||||||
normalMapFilter: 0
|
|
||||||
isReadable: 0
|
|
||||||
streamingMipmaps: 0
|
|
||||||
streamingMipmapsPriority: 0
|
|
||||||
vTOnly: 0
|
|
||||||
grayScaleToAlpha: 0
|
|
||||||
generateCubemap: 6
|
|
||||||
cubemapConvolution: 0
|
|
||||||
seamlessCubemap: 0
|
|
||||||
textureFormat: 1
|
|
||||||
maxTextureSize: 2048
|
|
||||||
textureSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
filterMode: -1
|
|
||||||
aniso: -1
|
|
||||||
mipBias: -100
|
|
||||||
wrapU: 1
|
|
||||||
wrapV: 1
|
|
||||||
wrapW: 1
|
|
||||||
nPOTScale: 1
|
|
||||||
lightmap: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
spriteMode: 0
|
|
||||||
spriteExtrude: 1
|
|
||||||
spriteMeshType: 1
|
|
||||||
alignment: 0
|
|
||||||
spritePivot: {x: 0.5, y: 0.5}
|
|
||||||
spritePixelsToUnits: 100
|
|
||||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
spriteGenerateFallbackPhysicsShape: 1
|
|
||||||
alphaUsage: 0
|
|
||||||
alphaIsTransparency: 0
|
|
||||||
spriteTessellationDetail: -1
|
|
||||||
textureType: 6
|
|
||||||
textureShape: 1
|
|
||||||
singleChannelComponent: 0
|
|
||||||
flipbookRows: 1
|
|
||||||
flipbookColumns: 1
|
|
||||||
maxTextureSizeSet: 0
|
|
||||||
compressionQualitySet: 0
|
|
||||||
textureFormatSet: 0
|
|
||||||
ignorePngGamma: 0
|
|
||||||
applyGammaDecoding: 0
|
|
||||||
platformSettings:
|
|
||||||
- serializedVersion: 3
|
|
||||||
buildTarget: DefaultTexturePlatform
|
|
||||||
maxTextureSize: 1024
|
|
||||||
resizeAlgorithm: 0
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 1
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
androidETC2FallbackOverride: 0
|
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
||||||
spriteSheet:
|
|
||||||
serializedVersion: 2
|
|
||||||
sprites: []
|
|
||||||
outline: []
|
|
||||||
physicsShape: []
|
|
||||||
bones: []
|
|
||||||
spriteID:
|
|
||||||
internalID: 0
|
|
||||||
vertices: []
|
|
||||||
indices:
|
|
||||||
edges: []
|
|
||||||
weights: []
|
|
||||||
secondaryTextures: []
|
|
||||||
spritePackingTag:
|
|
||||||
pSDRemoveMatte: 0
|
|
||||||
pSDShowRemoveMatteOption: 0
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
Binary file not shown.
@ -1,96 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 294ef1bfc6c8da34e97236144dd93bcd
|
|
||||||
TextureImporter:
|
|
||||||
internalIDToNameTable: []
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 11
|
|
||||||
mipmaps:
|
|
||||||
mipMapMode: 0
|
|
||||||
enableMipMap: 0
|
|
||||||
sRGBTexture: 1
|
|
||||||
linearTexture: 0
|
|
||||||
fadeOut: 0
|
|
||||||
borderMipMap: 0
|
|
||||||
mipMapsPreserveCoverage: 0
|
|
||||||
alphaTestReferenceValue: 0.5
|
|
||||||
mipMapFadeDistanceStart: 1
|
|
||||||
mipMapFadeDistanceEnd: 3
|
|
||||||
bumpmap:
|
|
||||||
convertToNormalMap: 0
|
|
||||||
externalNormalMap: 0
|
|
||||||
heightScale: 0.25
|
|
||||||
normalMapFilter: 0
|
|
||||||
isReadable: 0
|
|
||||||
streamingMipmaps: 0
|
|
||||||
streamingMipmapsPriority: 0
|
|
||||||
vTOnly: 0
|
|
||||||
grayScaleToAlpha: 0
|
|
||||||
generateCubemap: 6
|
|
||||||
cubemapConvolution: 0
|
|
||||||
seamlessCubemap: 0
|
|
||||||
textureFormat: 1
|
|
||||||
maxTextureSize: 2048
|
|
||||||
textureSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
filterMode: -1
|
|
||||||
aniso: -1
|
|
||||||
mipBias: -100
|
|
||||||
wrapU: 1
|
|
||||||
wrapV: 1
|
|
||||||
wrapW: 1
|
|
||||||
nPOTScale: 1
|
|
||||||
lightmap: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
spriteMode: 0
|
|
||||||
spriteExtrude: 1
|
|
||||||
spriteMeshType: 1
|
|
||||||
alignment: 0
|
|
||||||
spritePivot: {x: 0.5, y: 0.5}
|
|
||||||
spritePixelsToUnits: 100
|
|
||||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
spriteGenerateFallbackPhysicsShape: 1
|
|
||||||
alphaUsage: 0
|
|
||||||
alphaIsTransparency: 0
|
|
||||||
spriteTessellationDetail: -1
|
|
||||||
textureType: 6
|
|
||||||
textureShape: 1
|
|
||||||
singleChannelComponent: 0
|
|
||||||
flipbookRows: 1
|
|
||||||
flipbookColumns: 1
|
|
||||||
maxTextureSizeSet: 0
|
|
||||||
compressionQualitySet: 0
|
|
||||||
textureFormatSet: 0
|
|
||||||
ignorePngGamma: 0
|
|
||||||
applyGammaDecoding: 0
|
|
||||||
platformSettings:
|
|
||||||
- serializedVersion: 3
|
|
||||||
buildTarget: DefaultTexturePlatform
|
|
||||||
maxTextureSize: 1024
|
|
||||||
resizeAlgorithm: 0
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 1
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
androidETC2FallbackOverride: 0
|
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
||||||
spriteSheet:
|
|
||||||
serializedVersion: 2
|
|
||||||
sprites: []
|
|
||||||
outline: []
|
|
||||||
physicsShape: []
|
|
||||||
bones: []
|
|
||||||
spriteID:
|
|
||||||
internalID: 0
|
|
||||||
vertices: []
|
|
||||||
indices:
|
|
||||||
edges: []
|
|
||||||
weights: []
|
|
||||||
secondaryTextures: []
|
|
||||||
spritePackingTag:
|
|
||||||
pSDRemoveMatte: 0
|
|
||||||
pSDShowRemoveMatteOption: 0
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user