Skip to content

Commit f15a216

Browse files
committed
Init
1 parent 70bbc49 commit f15a216

36 files changed

+2396
-0
lines changed

.DS_Store

6 KB
Binary file not shown.

Assets/Volume.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Volume/Prefabs.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
+101
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
%YAML 1.1
2+
%TAG !u! tag:unity3d.com,2011:
3+
--- !u!1001 &100100000
4+
Prefab:
5+
m_ObjectHideFlags: 1
6+
serializedVersion: 2
7+
m_Modification:
8+
m_TransformParent: {fileID: 0}
9+
m_Modifications: []
10+
m_RemovedComponents: []
11+
m_ParentPrefab: {fileID: 0}
12+
m_RootGameObject: {fileID: 1265057557778412}
13+
m_IsPrefabParent: 1
14+
--- !u!1 &1265057557778412
15+
GameObject:
16+
m_ObjectHideFlags: 0
17+
m_PrefabParentObject: {fileID: 0}
18+
m_PrefabInternal: {fileID: 100100000}
19+
serializedVersion: 5
20+
m_Component:
21+
- component: {fileID: 4446200433146650}
22+
- component: {fileID: 33865858200237674}
23+
- component: {fileID: 23706754000546934}
24+
- component: {fileID: 114974769641083672}
25+
m_Layer: 0
26+
m_Name: Volume Image
27+
m_TagString: Untagged
28+
m_Icon: {fileID: 0}
29+
m_NavMeshLayer: 0
30+
m_StaticEditorFlags: 0
31+
m_IsActive: 1
32+
--- !u!4 &4446200433146650
33+
Transform:
34+
m_ObjectHideFlags: 1
35+
m_PrefabParentObject: {fileID: 0}
36+
m_PrefabInternal: {fileID: 100100000}
37+
m_GameObject: {fileID: 1265057557778412}
38+
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
39+
m_LocalPosition: {x: 0.35709482, y: 0.34545353, z: 0.12974754}
40+
m_LocalScale: {x: 0.02666666, y: 0.02, z: 0.02}
41+
m_Children: []
42+
m_Father: {fileID: 0}
43+
m_RootOrder: 0
44+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
45+
--- !u!23 &23706754000546934
46+
MeshRenderer:
47+
m_ObjectHideFlags: 1
48+
m_PrefabParentObject: {fileID: 0}
49+
m_PrefabInternal: {fileID: 100100000}
50+
m_GameObject: {fileID: 1265057557778412}
51+
m_Enabled: 1
52+
m_CastShadows: 1
53+
m_ReceiveShadows: 1
54+
m_DynamicOccludee: 1
55+
m_MotionVectors: 1
56+
m_LightProbeUsage: 1
57+
m_ReflectionProbeUsage: 1
58+
m_RenderingLayerMask: 4294967295
59+
m_Materials:
60+
- {fileID: 0}
61+
m_StaticBatchInfo:
62+
firstSubMesh: 0
63+
subMeshCount: 0
64+
m_StaticBatchRoot: {fileID: 0}
65+
m_ProbeAnchor: {fileID: 0}
66+
m_LightProbeVolumeOverride: {fileID: 0}
67+
m_ScaleInLightmap: 1
68+
m_PreserveUVs: 0
69+
m_IgnoreNormalsForChartDetection: 0
70+
m_ImportantGI: 0
71+
m_StitchLightmapSeams: 0
72+
m_SelectedEditorRenderState: 3
73+
m_MinimumChartSize: 4
74+
m_AutoUVMaxDistance: 0.5
75+
m_AutoUVMaxAngle: 89
76+
m_LightmapParameters: {fileID: 0}
77+
m_SortingLayerID: 0
78+
m_SortingLayer: 0
79+
m_SortingOrder: 0
80+
--- !u!33 &33865858200237674
81+
MeshFilter:
82+
m_ObjectHideFlags: 1
83+
m_PrefabParentObject: {fileID: 0}
84+
m_PrefabInternal: {fileID: 100100000}
85+
m_GameObject: {fileID: 1265057557778412}
86+
m_Mesh: {fileID: 0}
87+
--- !u!114 &114974769641083672
88+
MonoBehaviour:
89+
m_ObjectHideFlags: 1
90+
m_PrefabParentObject: {fileID: 0}
91+
m_PrefabInternal: {fileID: 100100000}
92+
m_GameObject: {fileID: 1265057557778412}
93+
m_Enabled: 0
94+
m_EditorHideFlags: 0
95+
m_Script: {fileID: 11500000, guid: 589fc3064d261406a97550f5fc2d62f2, type: 3}
96+
m_Name:
97+
m_EditorClassIdentifier:
98+
VolumeTexture: {fileID: 2800000, guid: 48c7bc5e83fa544dbb521836c86ab037, type: 3}
99+
VolumeShader: {fileID: 4800000, guid: e3dd265d9d46448429f542a689e120a5, type: 3}
100+
_meshDensity: 0
101+
_drawingStyle: 0

Assets/Volume/Prefabs/Volume Image.prefab.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Volume/Sample.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Volume/Sample/.DS_Store

6 KB
Binary file not shown.
Loading

Assets/Volume/Sample/20180320-165553_topbottom.png.meta

+84
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Volume/Scenes.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Volume/Scenes/Volume Example Scene.unity

+419
Large diffs are not rendered by default.

Assets/Volume/Scenes/Volume Example Scene.unity.meta

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Volume/Scripts.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
+103
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
using UnityEngine;
2+
3+
[RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))]
4+
[ExecuteInEditMode]
5+
public class VolumeGeometry : MonoBehaviour {
6+
7+
//Top bottom texture slot
8+
public Texture VolumeTexture;
9+
10+
//Reference to the Volume shader
11+
public Shader VolumeShader;
12+
13+
//Mesh density dropdown menu
14+
public enum Density {
15+
Medium, Low
16+
}
17+
public Density _meshDensity = Density.Medium;
18+
19+
//Drawing style
20+
public enum DrawingStyle{
21+
Points
22+
}
23+
public DrawingStyle _drawingStyle = DrawingStyle.Points;
24+
25+
//Private mesh width, height variables
26+
private int xSize, ySize;
27+
28+
29+
private void Awake () {
30+
Generate();
31+
createMaterial();
32+
}
33+
34+
private void calculateDensity () {
35+
switch(_meshDensity){
36+
case Density.Medium:
37+
xSize = 256;
38+
ySize = 256;
39+
break;
40+
case Density.Low:
41+
xSize = 128;
42+
ySize = 128;
43+
break;
44+
default:
45+
xSize = 256;
46+
ySize = 256;
47+
break;
48+
}
49+
}
50+
51+
private void Generate () {
52+
53+
Mesh mesh;
54+
Vector3[] vertices;
55+
56+
calculateDensity();
57+
58+
mesh = GetComponent<MeshFilter>().mesh = new Mesh();
59+
//mesh =
60+
mesh.bounds = new Bounds(Vector3.zero, 10000f * Vector3.one);
61+
mesh.name = "Volume Grid";
62+
63+
vertices = new Vector3[(xSize + 1) * (ySize + 1)];
64+
Vector2[] uv = new Vector2[vertices.Length];
65+
Vector4[] tangents = new Vector4[vertices.Length];
66+
Vector4 tangent = new Vector4(1f, 0f, 0f, -1f);
67+
for (int i = 0, y = 0; y <= ySize; y++) {
68+
for (int x = 0; x <= xSize; x++, i++) {
69+
vertices[i] = new Vector3(x, y);
70+
uv[i] = new Vector2((float)x / xSize, (float)y / ySize);
71+
tangents[i] = tangent;
72+
}
73+
}
74+
mesh.vertices = vertices;
75+
mesh.uv = uv;
76+
mesh.tangents = tangents;
77+
78+
int[] triangles = new int[xSize * ySize * 6];
79+
for (int ti = 0, vi = 0, y = 0; y < ySize; y++, vi++) {
80+
for (int x = 0; x < xSize; x++, ti += 6, vi++) {
81+
triangles[ti] = vi;
82+
triangles[ti + 3] = triangles[ti + 2] = vi + 1;
83+
triangles[ti + 4] = triangles[ti + 1] = vi + xSize + 1;
84+
triangles[ti + 5] = vi + xSize + 2;
85+
}
86+
}
87+
mesh.triangles = triangles;
88+
mesh.RecalculateNormals();
89+
90+
//Set the drawing mesh topolgy
91+
mesh.SetIndices(mesh.triangles, MeshTopology.Points, 0);
92+
93+
}
94+
95+
private void createMaterial(){
96+
97+
Renderer rend = GetComponent<Renderer>();
98+
rend.sharedMaterial = new Material(VolumeShader);
99+
rend.sharedMaterial.mainTexture = VolumeTexture;
100+
rend.sharedMaterial.SetFloat("_Displacement", 100.0f);
101+
102+
}
103+
}

Assets/Volume/Scripts/VolumeGeometry.cs.meta

+12
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Volume/Shaders.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)