Skip to content

Commit 3ce6384

Browse files
committed
0 parents  commit 3ce6384

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+6022
-0
lines changed

.vscode/extensions.json

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"recommendations": [
3+
"visualstudiotoolsforunity.vstuc"
4+
]
5+
}

.vscode/launch.json

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"version": "0.2.0",
3+
"configurations": [
4+
{
5+
"name": "Attach to Unity",
6+
"type": "vstuc",
7+
"request": "attach"
8+
}
9+
]
10+
}

.vscode/settings.json

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
{
2+
"files.exclude": {
3+
"**/.DS_Store": true,
4+
"**/.git": true,
5+
"**/.vs": true,
6+
"**/.gitmodules": true,
7+
"**/.vsconfig": true,
8+
"**/*.booproj": true,
9+
"**/*.pidb": true,
10+
"**/*.suo": true,
11+
"**/*.user": true,
12+
"**/*.userprefs": true,
13+
"**/*.unityproj": true,
14+
"**/*.dll": true,
15+
"**/*.exe": true,
16+
"**/*.pdf": true,
17+
"**/*.mid": true,
18+
"**/*.midi": true,
19+
"**/*.wav": true,
20+
"**/*.gif": true,
21+
"**/*.ico": true,
22+
"**/*.jpg": true,
23+
"**/*.jpeg": true,
24+
"**/*.png": true,
25+
"**/*.psd": true,
26+
"**/*.tga": true,
27+
"**/*.tif": true,
28+
"**/*.tiff": true,
29+
"**/*.3ds": true,
30+
"**/*.3DS": true,
31+
"**/*.fbx": true,
32+
"**/*.FBX": true,
33+
"**/*.lxo": true,
34+
"**/*.LXO": true,
35+
"**/*.ma": true,
36+
"**/*.MA": true,
37+
"**/*.obj": true,
38+
"**/*.OBJ": true,
39+
"**/*.asset": true,
40+
"**/*.cubemap": true,
41+
"**/*.flare": true,
42+
"**/*.mat": true,
43+
"**/*.meta": true,
44+
"**/*.prefab": true,
45+
"**/*.unity": true,
46+
"build/": true,
47+
"Build/": true,
48+
"Library/": true,
49+
"library/": true,
50+
"obj/": true,
51+
"Obj/": true,
52+
"Logs/": true,
53+
"logs/": true,
54+
"ProjectSettings/": true,
55+
"UserSettings/": true,
56+
"temp/": true,
57+
"Temp/": true
58+
},
59+
"dotnet.defaultSolution": "Slime Mold.sln"
60+
}

Assets/Scenes.meta

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

Assets/Scenes/Main.meta

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

Assets/Scenes/Main/ShaderRunner.cs

+104
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
using UnityEngine;
2+
using UnityEngine.UI; // Add this to access UI elements
3+
4+
public class ShaderRunner : MonoBehaviour
5+
{
6+
public ComputeShader computeShader;
7+
//computeShader.SetFloat("deltaTime", Time.deltaTime);
8+
public int numAgents = 50;
9+
public RawImage displayImage; // Assign this in the Inspector
10+
11+
private ComputeBuffer agentsBuffer;
12+
private RenderTexture renderTexture;
13+
private void Start()
14+
{
15+
// Adjust the size of the RawImage's RectTransform
16+
RectTransform rt = displayImage.GetComponent<RectTransform>();
17+
rt.sizeDelta = new Vector2(2560, 1440); // Set the size to 1920x1080
18+
19+
InitializeRenderTexture();
20+
displayImage.texture = renderTexture;
21+
22+
spawnCenter();
23+
}
24+
void Update()
25+
{
26+
27+
int updateKernelID = computeShader.FindKernel("updateAgent");
28+
computeShader.SetFloat("deltaTime", Time.deltaTime);
29+
computeShader.SetBuffer(updateKernelID, "AgentsOut", agentsBuffer);
30+
computeShader.Dispatch(updateKernelID, agentsBuffer.count / 256, 1, 1);
31+
32+
DrawAgentsOnTexture();
33+
34+
}
35+
36+
void DrawAgentsOnTexture()
37+
{
38+
// Example of setting up and dispatching a drawing kernel
39+
int drawKernelID = computeShader.FindKernel("DrawAgent");
40+
computeShader.SetBuffer(drawKernelID, "AgentsOut", agentsBuffer);
41+
computeShader.SetTexture(drawKernelID, "Result", renderTexture);
42+
computeShader.Dispatch(drawKernelID, renderTexture.width / 8, renderTexture.height / 8, 1);
43+
}
44+
45+
void InitializeRenderTexture()
46+
{
47+
int width = 2560;
48+
int height = 1440;
49+
renderTexture = new RenderTexture(width, height, 24)
50+
{
51+
enableRandomWrite = true,
52+
format = RenderTextureFormat.ARGBFloat
53+
};
54+
renderTexture.Create();
55+
}
56+
void spawnCenter() {
57+
58+
59+
agentsBuffer = new ComputeBuffer(numAgents, sizeof(float) * 3);
60+
int kernelID = computeShader.FindKernel("spawnInCenter");
61+
computeShader.SetBuffer(kernelID, "AgentsOut", agentsBuffer);
62+
computeShader.SetInt("numAgents", numAgents);
63+
64+
int threadGroupsX = Mathf.CeilToInt(numAgents / 8.0f); // Adjust based on your numthreads x dimension.
65+
computeShader.Dispatch(kernelID, threadGroupsX, 1, 1);
66+
//displayImage.texture = renderTexture;
67+
if (agentsBuffer == null) {
68+
agentsBuffer = new ComputeBuffer(numAgents, sizeof(float) * 3);
69+
}
70+
void Noise() {
71+
72+
int width = 2560;
73+
int height = 1440;
74+
RenderTexture renderTexture = new RenderTexture(width, height, 24)
75+
76+
{
77+
enableRandomWrite = true,
78+
format = RenderTextureFormat.ARGBFloat
79+
};
80+
renderTexture.Create();
81+
82+
int kernelID = computeShader.FindKernel("CSMain");
83+
84+
computeShader.SetTexture(kernelID, "Result", renderTexture);
85+
computeShader.Dispatch(kernelID, Mathf.CeilToInt((float)width / 8f), Mathf.CeilToInt((float)height / 8f), 1);
86+
87+
88+
89+
displayImage.texture = renderTexture; // Set the RenderTexture as the RawImage texture
90+
}
91+
92+
}
93+
private void OnDestroy()
94+
{
95+
// Release the ComputeBuffer when the GameObject is destroyed
96+
if (agentsBuffer != null)
97+
{
98+
agentsBuffer.Release();
99+
}
100+
}
101+
102+
103+
104+
}

Assets/Scenes/Main/ShaderRunner.cs.meta

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

Assets/Scenes/Materials.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
%YAML 1.1
2+
%TAG !u! tag:unity3d.com,2011:
3+
--- !u!21 &2100000
4+
Material:
5+
serializedVersion: 8
6+
m_ObjectHideFlags: 0
7+
m_CorrespondingSourceObject: {fileID: 0}
8+
m_PrefabInstance: {fileID: 0}
9+
m_PrefabAsset: {fileID: 0}
10+
m_Name: displayMaterial
11+
m_Shader: {fileID: 10752, guid: 0000000000000000f000000000000000, type: 0}
12+
m_Parent: {fileID: 0}
13+
m_ModifiedSerializedProperties: 0
14+
m_ValidKeywords: []
15+
m_InvalidKeywords: []
16+
m_LightmapFlags: 4
17+
m_EnableInstancingVariants: 0
18+
m_DoubleSidedGI: 0
19+
m_CustomRenderQueue: -1
20+
stringTagMap: {}
21+
disabledShaderPasses: []
22+
m_LockedProperties:
23+
m_SavedProperties:
24+
serializedVersion: 3
25+
m_TexEnvs:
26+
- _BumpMap:
27+
m_Texture: {fileID: 0}
28+
m_Scale: {x: 1, y: 1}
29+
m_Offset: {x: 0, y: 0}
30+
- _DetailAlbedoMap:
31+
m_Texture: {fileID: 0}
32+
m_Scale: {x: 1, y: 1}
33+
m_Offset: {x: 0, y: 0}
34+
- _DetailMask:
35+
m_Texture: {fileID: 0}
36+
m_Scale: {x: 1, y: 1}
37+
m_Offset: {x: 0, y: 0}
38+
- _DetailNormalMap:
39+
m_Texture: {fileID: 0}
40+
m_Scale: {x: 1, y: 1}
41+
m_Offset: {x: 0, y: 0}
42+
- _EmissionMap:
43+
m_Texture: {fileID: 0}
44+
m_Scale: {x: 1, y: 1}
45+
m_Offset: {x: 0, y: 0}
46+
- _MainTex:
47+
m_Texture: {fileID: 0}
48+
m_Scale: {x: 1, y: 1}
49+
m_Offset: {x: 0, y: 0}
50+
- _MetallicGlossMap:
51+
m_Texture: {fileID: 0}
52+
m_Scale: {x: 1, y: 1}
53+
m_Offset: {x: 0, y: 0}
54+
- _OcclusionMap:
55+
m_Texture: {fileID: 0}
56+
m_Scale: {x: 1, y: 1}
57+
m_Offset: {x: 0, y: 0}
58+
- _ParallaxMap:
59+
m_Texture: {fileID: 0}
60+
m_Scale: {x: 1, y: 1}
61+
m_Offset: {x: 0, y: 0}
62+
m_Ints: []
63+
m_Floats:
64+
- _BumpScale: 1
65+
- _Cutoff: 0.5
66+
- _DetailNormalMapScale: 1
67+
- _DstBlend: 0
68+
- _GlossMapScale: 1
69+
- _Glossiness: 0.5
70+
- _GlossyReflections: 1
71+
- _Metallic: 0
72+
- _Mode: 0
73+
- _OcclusionStrength: 1
74+
- _Parallax: 0.02
75+
- _SmoothnessTextureChannel: 0
76+
- _SpecularHighlights: 1
77+
- _SrcBlend: 1
78+
- _UVSec: 0
79+
- _ZWrite: 1
80+
m_Colors:
81+
- _Color: {r: 1, g: 1, b: 1, a: 1}
82+
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
83+
m_BuildTextureStacks: []

Assets/Scenes/Materials/displayMaterial.mat.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)