Andre McGrail
4 年前
当前提交
33fdb9a8
共有 22 个文件被更改,包括 2922 次插入 和 425 次删除
-
6Assets/AddressableAssetsData/AssetGroups/Utility.asset
-
10Assets/Data/UniversalRP/BoatDemoRenderer.asset
-
8Assets/Data/UniversalRP/PipelineAsset_Medium.asset
-
17Assets/Objects/environment/Clouds/Clouds.mat
-
28Assets/Objects/environment/Clouds/Clouds.shadergraph
-
141Assets/Objects/environment/Clouds/ComputeLightmap.shadersubgraph
-
30Assets/Scripts/Environment/SkyboxFeature.cs
-
13Assets/Scripts/Utility/SkyboxSystem.cs
-
995Assets/Shaders/Clouds/CloudShader.shadergraph
-
151Assets/scenes/demo_Island.unity
-
93Assets/Scripts/Environment/CloudRenderer.cs
-
11Assets/Scripts/Environment/CloudRenderer.cs.meta
-
8Assets/scenes/Testing/3Dskybox.meta
-
8Assets/scenes/Testing/3Dskybox/skyboxTest.meta
-
1001Assets/scenes/Testing/3Dskybox/skyboxTest.unity
-
7Assets/scenes/Testing/3Dskybox/skyboxTest.unity.meta
-
9Assets/scenes/Testing/3Dskybox/skyboxTest/LightingData.asset
-
8Assets/scenes/Testing/3Dskybox/skyboxTest/LightingData.asset.meta
-
707Assets/scenes/Testing/3Dskybox/skyboxTest/ReflectionProbe-0.exr
-
96Assets/scenes/Testing/3Dskybox/skyboxTest/ReflectionProbe-0.exr.meta
995
Assets/Shaders/Clouds/CloudShader.shadergraph
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
using System; |
|||
using System.Collections; |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using Unity.Collections; |
|||
using UnityEngine; |
|||
using UnityEngine.Rendering; |
|||
using Unity.Collections; |
|||
using Random = UnityEngine.Random; |
|||
|
|||
public class CloudRenderer : MonoBehaviour |
|||
{ |
|||
public Sprite[] sprites; |
|||
private Mesh[] cloudMeshes; |
|||
public Material cloudMaterial; |
|||
public ParticleSystem ps; |
|||
|
|||
private NativeArray<ParticleSystem.Particle> particles; |
|||
private ParticleSystem.Particle[] parts; |
|||
|
|||
private void Start() |
|||
{ |
|||
cloudMeshes = new Mesh[sprites.Length]; |
|||
int i = 0; |
|||
foreach (var sprite in sprites) |
|||
{ |
|||
// verts
|
|||
var verts = new List<Vector3>(); |
|||
sprite.vertices.ToList().ForEach(x => verts.Add(new Vector3(x.x, x.y, 0.0f))); |
|||
// triangles
|
|||
var tris = new List<int>(); |
|||
sprite.triangles.ToList().ForEach(x => tris.Add(x)); |
|||
// normals
|
|||
var normals = new Vector3[verts.Count]; |
|||
for (var index = 0; index < normals.Length; index++) |
|||
{ |
|||
normals[index] = Vector3.forward; |
|||
} |
|||
|
|||
var mesh = new Mesh |
|||
{ |
|||
name = sprite.name, |
|||
vertices = verts.ToArray(), |
|||
triangles = tris.ToArray(), |
|||
normals = normals.ToArray(), |
|||
uv = sprite.uv, |
|||
bounds = new Bounds(Vector3.zero, Vector3.one * 1000f) |
|||
}; |
|||
|
|||
cloudMeshes[i] = mesh; |
|||
i++; |
|||
} |
|||
} |
|||
|
|||
private void OnEnable() |
|||
{ |
|||
RenderPipelineManager.beginCameraRendering += RenderPipelineManagerOnbeginCameraRendering; |
|||
RenderPipelineManager.beginFrameRendering += RenderPipelineManagerOnbeginFrameRendering; |
|||
|
|||
particles = new NativeArray<ParticleSystem.Particle>(ps.main.maxParticles, Allocator.Persistent); |
|||
parts = new ParticleSystem.Particle[ps.main.maxParticles]; |
|||
} |
|||
|
|||
private void OnDisable() |
|||
{ |
|||
RenderPipelineManager.beginCameraRendering -= RenderPipelineManagerOnbeginCameraRendering; |
|||
RenderPipelineManager.beginFrameRendering -= RenderPipelineManagerOnbeginFrameRendering; |
|||
|
|||
particles.Dispose(); |
|||
} |
|||
|
|||
private void RenderPipelineManagerOnbeginFrameRendering(ScriptableRenderContext arg1, Camera[] arg2) |
|||
{ |
|||
var camPos = Camera.main.transform.position; |
|||
ps.GetParticles(parts); |
|||
var l = parts.ToList().OrderByDescending(x => Vector3.Distance(x.position * 64f, camPos)); |
|||
parts = l.ToArray(); |
|||
} |
|||
|
|||
private void RenderPipelineManagerOnbeginCameraRendering(ScriptableRenderContext context, Camera camera) |
|||
{ |
|||
if (!cloudMaterial) return; |
|||
|
|||
var camPos = camera.transform.position * (1f / 64f); |
|||
|
|||
foreach (var particle in parts) |
|||
{ |
|||
var q = Quaternion.LookRotation(particle.position - camPos); |
|||
Random.InitState((int)particle.randomSeed); |
|||
Graphics.DrawMesh(cloudMeshes[Random.Range(0, cloudMeshes.Length)], Matrix4x4.TRS(particle.position, q, particle.startSize3D), cloudMaterial, LayerMask.NameToLayer("3DSkybox"), camera); |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: e0e9bce1097b9ea488de4a37d6e9991d |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 47ffe71b43729094ab23a21d98640be4 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: aff0e485f378eac49a8553bc8fa4f447 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
1001
Assets/scenes/Testing/3Dskybox/skyboxTest.unity
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: e380e4927cc068740ba87f60fd7eafe2 |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
9
Assets/scenes/Testing/3Dskybox/skyboxTest/LightingData.asset
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
fileFormatVersion: 2 |
|||
guid: bc36c1bcfe4f60d45a60f208fab76e84 |
|||
NativeFormatImporter: |
|||
externalObjects: {} |
|||
mainObjectFileID: 0 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
v/1 channels chlist 7 B G R compression compression dataWindow box2i � displayWindow box2i � lineOrder lineOrder pixelAspectRatio float �?screenWindowCenter v2f screenWindowWidth float �? Y {� �� �( � �.�r���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������oZ~� x � A�a�a�r �I$�J(��,��0�0�
0�
0�4�M8��<��4��<� <�@8��<�AA�=�@C������� � O�� ����PA��А��ؐ�������������P�`��]��9�O?��?0C�?C� ?��?EC�#�C�?DC�?C��? C�t?kC�T?NC�� C�t ?�?JC�?+C�d;C�4?+C��?UC�t>C�$?C��?C�D?�C�?0C���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������C��?C�?C��?C�?C�?@ ?�;C�#�A�PA�<� @�� �C�==@��A @�A A�A� �@ = �A�=<��<��<��8�<��<��<�N8��5�4�N8��4�N4�L4�N0�M0�M0�L0�,��,�,�,��(��(��(��(�I$� �H �q�q�a�a�Q�a I�(�2��(�2�2��yחy��%��S ���M� �&d1&$ |
|||
dą��@�&�N�6���7vɸ�G�t �t:�h�)�YК%b͍��E��$�y�n.32o8�bad�p�]@ |
|||
�* �T" |