├── README.md ├── UnityComputeShaderTest ├── .gitignore ├── Assets │ ├── 01.meta │ ├── 01 │ │ ├── scene.meta │ │ ├── scene │ │ │ ├── Main.unity │ │ │ └── Main.unity.meta │ │ ├── script.meta │ │ └── script │ │ │ ├── CGINC.meta │ │ │ ├── CGINC │ │ │ ├── BillBoardCommon.cginc │ │ │ ├── BillBoardCommon.cginc.meta │ │ │ ├── ClassicNoise2D.cginc │ │ │ ├── ClassicNoise2D.cginc.meta │ │ │ ├── ClassicNoise3D.cginc │ │ │ ├── ClassicNoise3D.cginc.meta │ │ │ ├── ColorCollect.cginc │ │ │ ├── ColorCollect.cginc.meta │ │ │ ├── CoonsCurve.cginc │ │ │ ├── CoonsCurve.cginc.meta │ │ │ ├── NoiseMath.cginc │ │ │ ├── NoiseMath.cginc.meta │ │ │ ├── PostBlendCommon.cginc │ │ │ ├── PostBlendCommon.cginc.meta │ │ │ ├── Quaternion.cginc │ │ │ ├── Quaternion.cginc.meta │ │ │ ├── Random.cginc │ │ │ ├── Random.cginc.meta │ │ │ ├── SimplexNoise2D.cginc │ │ │ ├── SimplexNoise2D.cginc.meta │ │ │ ├── SimplexNoise3D.cginc │ │ │ ├── SimplexNoise3D.cginc.meta │ │ │ ├── SimplexNoise3Db.cginc │ │ │ ├── SimplexNoise3Db.cginc.meta │ │ │ ├── Transform.cginc │ │ │ └── Transform.cginc.meta │ │ │ ├── CubeMat.mat │ │ │ ├── CubeMat.mat.meta │ │ │ ├── Cubes.cs │ │ │ ├── Cubes.cs.meta │ │ │ ├── CubesCurl.compute │ │ │ ├── CubesCurl.compute.meta │ │ │ ├── CubesDepth.shader │ │ │ ├── CubesDepth.shader.meta │ │ │ ├── Old.meta │ │ │ ├── Old │ │ │ ├── Cubes.shader │ │ │ ├── Cubes.shader.meta │ │ │ ├── Cubes2.shader │ │ │ ├── Cubes2.shader.meta │ │ │ ├── Cubes3.shader │ │ │ ├── Cubes3.shader.meta │ │ │ ├── Cubes4.shader │ │ │ ├── Cubes4.shader.meta │ │ │ ├── CubesCurlSrc.compute │ │ │ └── CubesCurlSrc.compute.meta │ │ │ ├── Utils.meta │ │ │ ├── Utils │ │ │ ├── RandomPointOnMesh.cs │ │ │ └── RandomPointOnMesh.cs.meta │ │ │ ├── lenna.jpg │ │ │ └── lenna.jpg.meta │ ├── 02.meta │ ├── 02 │ │ ├── scene.meta │ │ ├── scene │ │ │ ├── MeshParticle.unity │ │ │ └── MeshParticle.unity.meta │ │ ├── script.meta │ │ └── script │ │ │ ├── CGINC.meta │ │ │ ├── CGINC │ │ │ ├── BillBoardCommon.cginc │ │ │ ├── BillBoardCommon.cginc.meta │ │ │ ├── ClassicNoise2D.cginc │ │ │ ├── ClassicNoise2D.cginc.meta │ │ │ ├── ClassicNoise3D.cginc │ │ │ ├── ClassicNoise3D.cginc.meta │ │ │ ├── ColorCollect.cginc │ │ │ ├── ColorCollect.cginc.meta │ │ │ ├── CoonsCurve.cginc │ │ │ ├── CoonsCurve.cginc.meta │ │ │ ├── NoiseMath.cginc │ │ │ ├── NoiseMath.cginc.meta │ │ │ ├── PostBlendCommon.cginc │ │ │ ├── PostBlendCommon.cginc.meta │ │ │ ├── Quaternion.cginc │ │ │ ├── Quaternion.cginc.meta │ │ │ ├── Random.cginc │ │ │ ├── Random.cginc.meta │ │ │ ├── SimplexNoise2D.cginc │ │ │ ├── SimplexNoise2D.cginc.meta │ │ │ ├── SimplexNoise3D.cginc │ │ │ ├── SimplexNoise3D.cginc.meta │ │ │ ├── SimplexNoise3Db.cginc │ │ │ ├── SimplexNoise3Db.cginc.meta │ │ │ ├── Transform.cginc │ │ │ └── Transform.cginc.meta │ │ │ ├── FaceDots.compute │ │ │ ├── FaceDots.compute.meta │ │ │ ├── FaceDots.cs │ │ │ ├── FaceDots.cs.meta │ │ │ ├── FaceDots.shader │ │ │ ├── FaceDots.shader.meta │ │ │ ├── FaceDotsMat.mat │ │ │ ├── FaceDotsMat.mat.meta │ │ │ ├── FaceDummyMesh.cs │ │ │ └── FaceDummyMesh.cs.meta │ ├── 03.meta │ ├── 03 │ │ ├── mesh.meta │ │ ├── mesh │ │ │ ├── ModelMat.mat │ │ │ ├── ModelMat.mat.meta │ │ │ ├── Model_01_01_10000.fbx │ │ │ ├── Model_01_01_10000.fbx.meta │ │ │ ├── Model_01_01_10000_albedo.jpg │ │ │ ├── Model_01_01_10000_albedo.jpg.meta │ │ │ ├── cat3.fbx │ │ │ ├── cat3.fbx.meta │ │ │ ├── catMat.mat │ │ │ ├── catMat.mat.meta │ │ │ ├── cat_tex.png │ │ │ └── cat_tex.png.meta │ │ ├── scene.meta │ │ ├── scene │ │ │ ├── MeshParticle 1.unity │ │ │ └── MeshParticle 1.unity.meta │ │ ├── script.meta │ │ └── script │ │ │ ├── CubeMat 1.mat │ │ │ ├── CubeMat 1.mat.meta │ │ │ ├── CubeMat 2.mat │ │ │ ├── CubeMat 2.mat.meta │ │ │ ├── CubesCurl 1.compute │ │ │ ├── CubesCurl 1.compute.meta │ │ │ ├── CubesDepth 1.shader │ │ │ ├── CubesDepth 1.shader.meta │ │ │ ├── MeshParticle.cs │ │ │ └── MeshParticle.cs.meta │ ├── 04.meta │ ├── 04 │ │ ├── scene.meta │ │ ├── scene │ │ │ ├── Missile.unity │ │ │ └── Missile.unity.meta │ │ ├── scripts.meta │ │ └── scripts │ │ │ ├── CGINC.meta │ │ │ ├── CGINC │ │ │ ├── BillBoardCommon.cginc │ │ │ ├── BillBoardCommon.cginc.meta │ │ │ ├── ClassicNoise2D.cginc │ │ │ ├── ClassicNoise2D.cginc.meta │ │ │ ├── ClassicNoise3D.cginc │ │ │ ├── ClassicNoise3D.cginc.meta │ │ │ ├── ColorCollect.cginc │ │ │ ├── ColorCollect.cginc.meta │ │ │ ├── CoonsCurve.cginc │ │ │ ├── CoonsCurve.cginc.meta │ │ │ ├── NoiseMath.cginc │ │ │ ├── NoiseMath.cginc.meta │ │ │ ├── PostBlendCommon.cginc │ │ │ ├── PostBlendCommon.cginc.meta │ │ │ ├── Quaternion.cginc │ │ │ ├── Quaternion.cginc.meta │ │ │ ├── Random.cginc │ │ │ ├── Random.cginc.meta │ │ │ ├── SimplexNoise2D.cginc │ │ │ ├── SimplexNoise2D.cginc.meta │ │ │ ├── SimplexNoise3D.cginc │ │ │ ├── SimplexNoise3D.cginc.meta │ │ │ ├── Transform.cginc │ │ │ └── Transform.cginc.meta │ │ │ ├── Mover.cs │ │ │ ├── Mover.cs.meta │ │ │ ├── SimplexNoise3Db.cginc │ │ │ ├── SimplexNoise3Db.cginc.meta │ │ │ ├── Star.cs │ │ │ ├── Star.cs.meta │ │ │ ├── Star.shader │ │ │ ├── Star.shader.meta │ │ │ ├── StarCurl.compute │ │ │ ├── StarCurl.compute.meta │ │ │ ├── StarMat.mat │ │ │ ├── StarMat.mat.meta │ │ │ ├── TrailMat.mat │ │ │ └── TrailMat.mat.meta │ ├── 04_frag_billboard.meta │ ├── 04_frag_billboard │ │ ├── MissileFrag.unity │ │ ├── MissileFrag.unity.meta │ │ ├── OrbitCamera.cs │ │ ├── OrbitCamera.cs.meta │ │ ├── StarMatQuad.mat │ │ ├── StarMatQuad.mat.meta │ │ ├── StarQuad.shader │ │ ├── StarQuad.shader.meta │ │ ├── dot.png │ │ └── dot.png.meta │ ├── 05.meta │ ├── 05 │ │ ├── 05.unity │ │ ├── 05.unity.meta │ │ ├── ChargeParticle.compute │ │ ├── ChargeParticle.compute.meta │ │ ├── ChargeParticle.cs │ │ ├── ChargeParticle.cs.meta │ │ ├── ChargeTest.cs │ │ ├── ChargeTest.cs.meta │ │ ├── Easing.cginc │ │ ├── Easing.cginc.meta │ │ ├── New Material.mat │ │ ├── New Material.mat.meta │ │ ├── SimplexNoise3Db.shader │ │ ├── SimplexNoise3Db.shader.meta │ │ ├── StarChargeQuad.shader │ │ └── StarChargeQuad.shader.meta │ ├── 06_hitTest.meta │ ├── 06_hitTest │ │ ├── 06_hittest.unity │ │ ├── 06_hittest.unity.meta │ │ ├── HitTest.compute │ │ ├── HitTest.compute.meta │ │ ├── HitTestMat.mat │ │ ├── HitTestMat.mat.meta │ │ ├── HitTestPieceData.cs │ │ ├── HitTestPieceData.cs.meta │ │ ├── HitTestPieceSurf.shader │ │ ├── HitTestPieceSurf.shader.meta │ │ ├── HitTestPieces.cs │ │ ├── HitTestPieces.cs.meta │ │ ├── HitTestPosComputer.cs │ │ └── HitTestPosComputer.cs.meta │ ├── 07_trail.meta │ └── 07_trail │ │ ├── New Scene.unity │ │ ├── New Scene.unity.meta │ │ ├── PixelGetter.cs │ │ ├── PixelGetter.cs.meta │ │ ├── hello.psd │ │ ├── hello.psd.meta │ │ ├── keijiro.meta │ │ ├── keijiro │ │ ├── DFVolume.meta │ │ ├── DFVolume │ │ │ ├── Editor.meta │ │ │ ├── Editor │ │ │ │ ├── VolumeDataEditor.cs │ │ │ │ ├── VolumeDataEditor.cs.meta │ │ │ │ ├── VolumeSamplerEditor.cs │ │ │ │ ├── VolumeSamplerEditor.cs.meta │ │ │ │ ├── VolumeVisualizer.cs │ │ │ │ └── VolumeVisualizer.cs.meta │ │ │ ├── Shader.meta │ │ │ ├── Shader │ │ │ │ ├── Visualizer.shader │ │ │ │ └── Visualizer.shader.meta │ │ │ ├── VolumeData.cs │ │ │ ├── VolumeData.cs.meta │ │ │ ├── VolumeSampler.cs │ │ │ ├── VolumeSampler.cs.meta │ │ │ ├── VolumeVisualizer.cs │ │ │ └── VolumeVisualizer.cs.meta │ │ ├── Klak.meta │ │ ├── Klak │ │ │ ├── Chromatics.meta │ │ │ ├── Chromatics │ │ │ │ ├── CosineGradient.cs │ │ │ │ ├── CosineGradient.cs.meta │ │ │ │ ├── Editor.meta │ │ │ │ └── Editor │ │ │ │ │ ├── CosineGradientEditor.cs │ │ │ │ │ ├── CosineGradientEditor.cs.meta │ │ │ │ │ ├── Preview.shader │ │ │ │ │ └── Preview.shader.meta │ │ │ ├── Math.meta │ │ │ ├── Math │ │ │ │ ├── Perlin.cs │ │ │ │ └── Perlin.cs.meta │ │ │ ├── Motion.meta │ │ │ └── Motion │ │ │ │ ├── BrownianMotion.cs │ │ │ │ ├── BrownianMotion.cs.meta │ │ │ │ ├── ConstantMotion.cs │ │ │ │ ├── ConstantMotion.cs.meta │ │ │ │ ├── Editor.meta │ │ │ │ └── Editor │ │ │ │ ├── BrownianMotionEditor.cs │ │ │ │ ├── BrownianMotionEditor.cs.meta │ │ │ │ ├── ConstantMotionEditor.cs │ │ │ │ └── ConstantMotionEditor.cs.meta │ │ ├── Swarm.meta │ │ └── Swarm │ │ │ ├── CrawlingSwarm.cs │ │ │ ├── CrawlingSwarm.cs.meta │ │ │ ├── Editor.meta │ │ │ ├── Editor │ │ │ ├── CrawlingSwarmEditor.cs │ │ │ ├── CrawlingSwarmEditor.cs.meta │ │ │ ├── Default Swarm Gradient.asset │ │ │ ├── Default Swarm Gradient.asset.meta │ │ │ ├── Default Tube Material.mat │ │ │ ├── Default Tube Material.mat.meta │ │ │ ├── Default Tube Template.asset │ │ │ ├── Default Tube Template.asset.meta │ │ │ ├── Default Volume Data.asset │ │ │ ├── Default Volume Data.asset.meta │ │ │ ├── FloatingSwarmEditor.cs │ │ │ ├── FloatingSwarmEditor.cs.meta │ │ │ ├── SwirlingSwarmEditor.cs │ │ │ ├── SwirlingSwarmEditor.cs.meta │ │ │ ├── TubeTemplateEditor.cs │ │ │ └── TubeTemplateEditor.cs.meta │ │ │ ├── FloatingSwarm.cs │ │ │ ├── FloatingSwarm.cs.meta │ │ │ ├── FloatingSwarmBase.cs │ │ │ ├── FloatingSwarmBase.cs.meta │ │ │ ├── Shader.meta │ │ │ ├── Shader │ │ │ ├── CrawlingSwarm.compute │ │ │ ├── CrawlingSwarm.compute.meta │ │ │ ├── FloatingSwarm.compute │ │ │ ├── FloatingSwarm.compute.meta │ │ │ ├── SimplexNoise3D.cginc │ │ │ ├── SimplexNoise3D.cginc.meta │ │ │ ├── SwirlingSwarm.compute │ │ │ ├── SwirlingSwarm.compute.meta │ │ │ ├── Tube.shader │ │ │ └── Tube.shader.meta │ │ │ ├── SwirlingSwarm.cs │ │ │ ├── SwirlingSwarm.cs.meta │ │ │ ├── TubeTemplate.cs │ │ │ └── TubeTemplate.cs.meta │ │ ├── mesh.meta │ │ └── mesh │ │ ├── cat3.fbx │ │ ├── cat3.fbx.meta │ │ ├── catMat.mat │ │ ├── catMat.mat.meta │ │ ├── cat_tex.png │ │ └── cat_tex.png.meta ├── Logs │ └── Packages-Update.log ├── Packages │ ├── manifest.json │ └── packages-lock.json ├── ProjectSettings │ ├── AudioManager.asset │ ├── ClusterInputManager.asset │ ├── DynamicsManager.asset │ ├── EditorBuildSettings.asset │ ├── EditorSettings.asset │ ├── GraphicsSettings.asset │ ├── InputManager.asset │ ├── NavMeshAreas.asset │ ├── NetworkManager.asset │ ├── PackageManagerSettings.asset │ ├── Physics2DSettings.asset │ ├── PresetManager.asset │ ├── ProjectSettings.asset │ ├── ProjectVersion.txt │ ├── QualitySettings.asset │ ├── TagManager.asset │ ├── TimeManager.asset │ ├── UnityConnectSettings.asset │ ├── VFXManager.asset │ ├── VersionControlSettings.asset │ └── XRSettings.asset └── UserSettings │ └── EditorUserSettings.asset └── img ├── compute.gif └── img.png /README.md: -------------------------------------------------------------------------------- 1 | # UnityComputeShaderTest 2 | 3 | ![img](./img/compute.gif) 4 | 5 | * checked on Windows10 / Unity 2019.2.19f1 6 | * 3d model https://free3d.com/ja/3d-model/dennis-posed-004-812878.html 7 | 8 | ## reference 9 | 10 | * https://qiita.com/mao_/items/920bec69f44d5f5a9382 11 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/.gitignore: -------------------------------------------------------------------------------- 1 | /[Ll]ibrary/ 2 | /[Tt]emp/ 3 | /[Oo]bj/ 4 | /[Bb]uild/ 5 | /[Bb]uilds/ 6 | /Assets/AssetStoreTools* 7 | 8 | Library 9 | Temp 10 | VectrosityDemos/ 11 | unityTest/ 12 | output/ 13 | 14 | # Visual Studio 2015 cache directory 15 | /.vs/ 16 | 17 | # Autogenerated VS/MD/Consulo solution and project files 18 | ExportedObj/ 19 | .consulo/ 20 | *.csproj 21 | *.unityproj 22 | *.sln 23 | *.suo 24 | *.tmp 25 | *.user 26 | *.userprefs 27 | *.pidb 28 | *.booproj 29 | *.svd 30 | *.pdb 31 | 32 | *.wav 33 | *.c4d 34 | *.mov 35 | 36 | # Unity3D generated meta files 37 | *.pidb.meta 38 | 39 | # Unity3D Generated File On Crash Reports 40 | sysinfo.txt 41 | 42 | # Builds 43 | *.apk 44 | *.unitypackage 45 | 46 | 47 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode 48 | ## Directory-based project format 49 | .idea/ 50 | 51 | ## File-based project format 52 | *.ipr 53 | *.iws 54 | *.iml 55 | 56 | ## Additional for IntelliJ 57 | out/ 58 | 59 | # generated by mpeltonen/sbt-idea plugin 60 | .idea_modules/ 61 | 62 | # generated by JIRA plugin 63 | atlassian-ide-plugin.xml 64 | 65 | # generated by Crashlytics plugin (for Android Studio and Intellij) 66 | com_crashlytics_export_strings.xml 67 | 68 | 69 | ### https://raw.github.com/github/gitignore/fcce3b8de0e4b7a1c525ad4867f4ce8af4990854/Global/OSX.gitignore 70 | .DS_Store 71 | .AppleDouble 72 | .LSOverride 73 | 74 | # Icon must ends with two \r. 75 | Icon 76 | 77 | # Thumbnails 78 | ._* 79 | 80 | # Files that might appear on external disk 81 | .Spotlight-V100 82 | .Trashes 83 | 84 | ### https://raw.github.com/github/gitignore/fcce3b8de0e4b7a1c525ad4867f4ce8af4990854/Global/Windows.gitignore 85 | 86 | # Windows image file caches 87 | Thumbs.db 88 | ehthumbs.db 89 | 90 | # Folder config file 91 | Desktop.ini 92 | 93 | # Recycle Bin used on file shares 94 | $RECYCLE.BIN/ 95 | 96 | # Windows Installer files 97 | *.cab 98 | *.msi 99 | *.msm 100 | *.msp 101 | /*.pdb 102 | /*.exe 103 | 104 | # vscode 105 | /.vscode/ 106 | /Assets/VSCode/ 107 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4538019f6c6d642ee86eda92c3091292 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/scene.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 730e8aba1f2454cb8a18b5190f7537a5 3 | folderAsset: yes 4 | timeCreated: 1538177430 5 | licenseType: Pro 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/scene/Main.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9a9c95b4c7eb41daa9b622b6170c4cf 3 | timeCreated: 1538177708 4 | licenseType: Pro 5 | DefaultImporter: 6 | externalObjects: {} 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 40cedd2959bc54105adf63695f47827d 3 | folderAsset: yes 4 | timeCreated: 1538177421 5 | licenseType: Pro 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CGINC.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 32ae3e0c12add4245837ead166dca99d 3 | folderAsset: yes 4 | timeCreated: 1538177915 5 | licenseType: Pro 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CGINC/BillBoardCommon.cginc: -------------------------------------------------------------------------------- 1 | // Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld' 2 | 3 | #ifndef BILLBOARD_INCLUDED 4 | #define BILLBOARD_INCLUDED 5 | 6 | float4 vPosBillboard(float4 pos, float2 uv, float size){ 7 | float4 center = pos; 8 | center.xy -= uv-0.5; 9 | half4 vPos = mul(UNITY_MATRIX_MV, center); 10 | vPos.xy += (uv-0.5)*size; 11 | return vPos; 12 | } 13 | 14 | float4 wPosOnePoleBillboard(float4 pos, float2 uv, float size){ 15 | float4 center = pos; 16 | center.xy -= uv-0.5; 17 | center = mul(unity_ObjectToWorld, center); 18 | 19 | float3 forward = normalize(_WorldSpaceCameraPos - center.xyz); 20 | float3 up = UNITY_MATRIX_V[1].xyz; 21 | float3 right = normalize(cross(forward, up)); 22 | up = normalize(cross(right, forward)); 23 | 24 | float3 wPos = center.xyz + ((uv.x-0.5) * right + (uv.y-0.5) * up)*size; 25 | return float4(wPos,1.0); 26 | } 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CGINC/BillBoardCommon.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1acc0c6477f5b45e6bae6052999b1678 3 | timeCreated: 1446789578 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CGINC/ClassicNoise2D.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5e41253617a404e7788b213fc7f99234 3 | timeCreated: 1443509306 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CGINC/ClassicNoise3D.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 55bfd6cc628694401936d6beef3dd7b6 3 | timeCreated: 1443510078 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CGINC/ColorCollect.cginc: -------------------------------------------------------------------------------- 1 | #ifndef COLOR_COLLECT 2 | #define COLOR_COLLECT 3 | 4 | float3 rgb2hsv(float3 c) 5 | { 6 | float4 K = float4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); 7 | float4 p = lerp(float4(c.bg, K.wz), float4(c.gb, K.xy), step(c.b, c.g)); 8 | float4 q = lerp(float4(p.xyw, c.r), float4(c.r, p.yzx), step(p.x, c.r)); 9 | 10 | float d = q.x - min(q.w, q.y); 11 | float e = 1.0e-10; 12 | return float3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); 13 | } 14 | float3 hsv2rgb(float3 c) 15 | { 16 | float4 K = float4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); 17 | float3 p = abs(frac(c.xxx + K.xyz) * 6.0 - K.www); 18 | return lerp(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y) * c.z; 19 | } 20 | 21 | //s:sourceColor, b:blendColor 22 | #define blendOverlay(s,b) (b < 0.5) ? (2.0 * s * b) : (1.0 - 2.0 * (1.0 - s) * (1.0 - b)) 23 | #define blendScreen(s,b) 1.0 - ((1.0 - s) * (1.0 - b)) 24 | 25 | #endif // COLOR_COLLECT 26 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CGINC/ColorCollect.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 32d1c23f1af3f41a48819bb49d83ba6b 3 | timeCreated: 1452960258 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CGINC/CoonsCurve.cginc: -------------------------------------------------------------------------------- 1 | #ifndef COONSCURVE_INCLUDED 2 | #define COONSCURVE_INCLUDED 3 | 4 | float3 coons(float t, float3 p0, float3 p1, float3 v0, float3 v1) 5 | { 6 | float3 a = 2*p0 - 2*p1 + v0 + v1; 7 | float3 b = -3*p0 + 3*p1 - 2*v0 - v1; 8 | 9 | float t2 = t*t; 10 | float t3 = t2*t; 11 | 12 | return a*t3 + b*t2 + v0*t + p0; 13 | } 14 | 15 | float2 coons(float t, float2 p0, float2 p1, float2 v0, float2 v1) 16 | { 17 | float2 a = 2*p0 - 2*p1 + v0 + v1; 18 | float2 b = -3*p0 + 3*p1 - 2*v0 - v1; 19 | 20 | float t2 = t*t; 21 | float t3 = t2*t; 22 | 23 | return a*t3 + b*t2 + v0*t + p0; 24 | } 25 | 26 | float coons(float t, float p0, float p1, float v0, float v1) 27 | { 28 | float a = 2*p0 - 2*p1 + v0 + v1; 29 | float b = -3*p0 + 3*p1 - 2*v0 - v1; 30 | 31 | float t2 = t*t; 32 | float t3 = t2*t; 33 | 34 | return a*t3 + b*t2 + v0*t + p0; 35 | } 36 | 37 | #endif -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CGINC/CoonsCurve.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3c3e6636ecec64a7cbf5739e3ab560a7 3 | timeCreated: 1443721373 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CGINC/NoiseMath.cginc: -------------------------------------------------------------------------------- 1 |  2 | // Ramp関数 3 | float Ramp(float r) 4 | { 5 | if (r >= 1.0) 6 | { 7 | return 1.0; 8 | } 9 | else if (r <= -1.0) 10 | { 11 | return -1.0; 12 | } 13 | else 14 | { 15 | // ((15.0 / 8.0) * r) - ((10.0 / 8.0) * (r * r * r)) + ((3.0 / 8.0) * (r * r * r * r * r)) 16 | return (1.875 * r) - (1.25 * (r * r * r)) + (0.375 * (r * r * r * r * r)); 17 | } 18 | } 19 | 20 | float Fade(float t) 21 | { 22 | return t * t * t * (t * (t * 6.0 - 15.0) + 10.0); 23 | } 24 | 25 | float Lerp(float t, float a, float b) 26 | { 27 | return a + t * (b - a); 28 | } 29 | 30 | float Grad(int hash, float x, float y, float z) 31 | { 32 | int h = hash & 15; 33 | float u = (h < 8) ? x : y; 34 | float v = (h < 4) ? y : (h == 12 || h == 14) ? x : z; 35 | return ((h & 1) == 0 ? u : -u) + ((h & 2) == 0 ? v : -v); 36 | } 37 | 38 | float Rand(float3 co) 39 | { 40 | return frac(sin(dot(co.xyz, float3(12.9898, 78.233, 56.787))) * 43758.5453); 41 | } -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CGINC/NoiseMath.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 81739be035a23475380da21dba48238b 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CGINC/PostBlendCommon.cginc: -------------------------------------------------------------------------------- 1 | #ifndef POST_BLEND_INCLUDE 2 | #define POST_BLEND_INCLUDE 3 | 4 | #define WET(n) o.blendAlpha.w = n; 5 | struct pOut 6 | { 7 | half4 blendColor : SV_Target0; 8 | half4 blendAlpha : SV_Target1; 9 | half4 mull : SV_Target2; 10 | half4 add : SV_Target3; 11 | }; 12 | 13 | half blendWeight(half depth){ 14 | depth = abs(depth); 15 | return clamp(pow(depth, -4),1e-4,5e10); 16 | } 17 | half blendDepth(half depth){ 18 | depth = abs(depth); 19 | return max(0,_ProjectionParams.z - depth); 20 | } 21 | 22 | pOut alphaBlend(half4 c, half depth){ 23 | half w = blendWeight(depth); 24 | pOut o; 25 | 26 | o.blendColor = half4(c.rgb*c.a*w,c.a); 27 | o.blendAlpha = half4(c.a*w, 0, 0, 0); 28 | o.mull = 0; 29 | o.add = 0; 30 | 31 | return o; 32 | } 33 | 34 | pOut additiveBlend(half4 c){ 35 | c.rgb *= c.a; 36 | pOut o; 37 | 38 | o.blendColor = 0; 39 | o.blendAlpha = half4(0,0,0,0); 40 | o.mull = 0; 41 | o.add = half4(c.rgb,0); 42 | 43 | return o; 44 | } 45 | 46 | pOut multiplyBlend(half4 c){ 47 | c.rgb = lerp(half3(1,1,1), c.rgb, c.a); 48 | // c.rgb = saturate(c.rgb); 49 | pOut o; 50 | 51 | o.blendColor = 1; 52 | o.blendAlpha = 1; 53 | o.mull = half4(c.rgb,1); 54 | o.add = 1; 55 | 56 | return o; 57 | } 58 | 59 | pOut alphaDepth(half4 c, half depth){ 60 | c.a = saturate(c.a*5); 61 | pOut o; 62 | 63 | o.blendColor = 0; 64 | o.blendAlpha = half4(0, c.a*blendDepth(depth), 0, 0); 65 | o.mull = 0; 66 | o.add = 0; 67 | 68 | return o; 69 | } 70 | pOut multiplyDepth(half4 c, half depth){ 71 | c.rgb = lerp(half3(1,1,1), c.rgb, c.a); 72 | c.a = distance(half3(1,1,1), c.rgb); 73 | c.a = saturate(c.a*5); 74 | pOut o; 75 | 76 | o.blendColor = 0; 77 | o.blendAlpha = 0; 78 | o.mull = half4(0,0,0,c.a*blendDepth(depth)); 79 | o.add = 0; 80 | 81 | return o; 82 | } 83 | pOut additiveDepth(half4 c, half depth){ 84 | c.rgb *= c.a; 85 | c.a = distance(half3(0,0,0), c.rgb); 86 | c.a = saturate(c.a*5); 87 | pOut o; 88 | 89 | o.blendColor = 0; 90 | o.blendAlpha = 0; 91 | o.mull = 0; 92 | o.add = half4(0,0,0,c.a*blendDepth(depth)); 93 | 94 | return o; 95 | } 96 | 97 | #endif -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CGINC/PostBlendCommon.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b2e64bbc082024fd686e48667c80ba6a 3 | timeCreated: 1445838467 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CGINC/Quaternion.cginc: -------------------------------------------------------------------------------- 1 | #ifndef QUATERNION_INCLUDED 2 | #define QUATERNION_INCLUDED 3 | 4 | #include "/Assets/CGINC/Random.cginc" 5 | #define PI2 6.28318530718 6 | // Quaternion multiplication. 7 | // http://mathworld.wolfram.com/Quaternion.html 8 | float4 qmul(float4 q1, float4 q2) 9 | { 10 | return float4( 11 | q2.xyz * q1.w + q1.xyz * q2.w + cross(q1.xyz, q2.xyz), 12 | q1.w * q2.w - dot(q1.xyz, q2.xyz) 13 | ); 14 | } 15 | 16 | //Convert Matrix to Quaternion 17 | // http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/ 18 | float4 matrix_to_quaternion(float3x3 m) { 19 | 20 | float tr = m[0][0] + m[1][1] + m[2][2]; 21 | float4 q = float4(0, 0, 0, 0); 22 | 23 | if (tr > 0) { 24 | float s = sqrt(tr + 1.0) * 2; // S=4*qw 25 | q.w = 0.25 * s; 26 | q.x = (m[2][1] - m[1][2]) / s; 27 | q.y = (m[0][2] - m[2][0]) / s; 28 | q.z = (m[1][0] - m[0][1]) / s; 29 | } 30 | else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) { 31 | float s = sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]) * 2; // S=4*qx 32 | q.w = (m[2][1] - m[1][2]) / s; 33 | q.x = 0.25 * s; 34 | q.y = (m[0][1] + m[1][0]) / s; 35 | q.z = (m[0][2] + m[2][0]) / s; 36 | } 37 | else if (m[1][1] > m[2][2]) { 38 | float s = sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]) * 2; // S=4*qy 39 | q.w = (m[0][2] - m[2][0]) / s; 40 | q.x = (m[0][1] + m[1][0]) / s; 41 | q.y = 0.25 * s; 42 | q.z = (m[1][2] + m[2][1]) / s; 43 | } 44 | else { 45 | float s = sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]) * 2; // S=4*qz 46 | q.w = (m[1][0] - m[0][1]) / s; 47 | q.x = (m[0][2] + m[2][0]) / s; 48 | q.y = (m[1][2] + m[2][1]) / s; 49 | q.z = 0.25 * s; 50 | } 51 | 52 | return q; 53 | } 54 | 55 | // Rotate a vector with a rotation quaternion. 56 | // http://mathworld.wolfram.com/Quaternion.html 57 | float3 rotateWithQuaternion(float3 v, float4 r) 58 | { 59 | float4 r_c = r * float4(-1.0, -1.0, -1.0, 1.0); 60 | return qmul(r, qmul(float4(v, 0.0), r_c)).xyz; 61 | } 62 | 63 | float4 getAngleAxisRotation(float3 v, float3 axis, float angle) { 64 | axis = normalize(axis); 65 | float s, c; 66 | sincos(angle*0.5, s, c); 67 | return float4(axis.x*s, axis.y*s, axis.z*s, c); 68 | } 69 | 70 | float3 rotateAngleAxis(float3 v, float3 axis, float angle) { 71 | float4 q = getAngleAxisRotation(v, axis, angle); 72 | return rotateWithQuaternion(v, q); 73 | } 74 | 75 | float4 fromToRotation(float3 from, float3 to) { 76 | float3 77 | v1 = normalize(from), 78 | v2 = normalize(to), 79 | cr = cross(v1, v2); 80 | float4 q = float4(cr, 1 + dot(v1, v2)); 81 | return normalize(q); 82 | } 83 | 84 | float4 getRandomRotation(float2 uv) { 85 | 86 | // Uniform random unit quaternion. 87 | // http://tog.acm.org/resources/GraphicsGems/gemsiii/urot.c 88 | float3 r3 = rand3(uv); 89 | 90 | float r1 = sqrt(1.0 - r3.x); 91 | float r2 = sqrt(r3.x); 92 | float t1 = PI2 * r3.y; 93 | float t2 = PI2 * r3.z; 94 | 95 | return float4(sin(t1) * r1, cos(t1) * r1, sin(t2) * r2, cos(t2) * r2); 96 | } 97 | 98 | #endif -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CGINC/Quaternion.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b180f52e4361c48faae2f54f96b12647 3 | timeCreated: 1443723706 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CGINC/Random.cginc: -------------------------------------------------------------------------------- 1 | #ifndef RANDOM_INCLUDED 2 | #define RANDOM_INCLUDED 3 | 4 | float rand( float2 co ){ 5 | return frac(sin(dot(co.xy, float2(12.9898, 78.233))) * 43758.5453); 6 | } 7 | 8 | float3 rand3( float2 seed ){ 9 | float t = sin(seed.x + seed.y * 1e3); 10 | return float3(frac(t*1e4), frac(t*1e6), frac(t*1e5)); 11 | } 12 | 13 | #endif // RANDOM_INCLUDED 14 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CGINC/Random.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6e21e3ab5592945adb910ee028fcefae 3 | timeCreated: 1443723804 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CGINC/SimplexNoise2D.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7126cd41827f11142907e3f44a1a89e9 3 | timeCreated: 1486020469 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CGINC/SimplexNoise3D.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dfd20fd8623da4c40bb97b653923f4fd 3 | timeCreated: 1486020469 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CGINC/SimplexNoise3Db.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 059daaa12e4a24f6eb38ed52afbea544 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CGINC/Transform.cginc: -------------------------------------------------------------------------------- 1 | #ifndef TRANSFORM_INCLUDED 2 | #define TRANSFORM_INCLUDED 3 | // calculating formula from 4 | // http://www.cg.info.hiroshima-cu.ac.jp/~miyazaki/knowledge/tech07.html 5 | 6 | float3x3 getRotateMatrix(float3 right, float3 up, float3 forward) { 7 | float3x3 rot = float3x3( 8 | right.x, up.x, forward.x, 9 | right.y, up.y, forward.y, 10 | right.z, up.z, forward.z 11 | ); 12 | return rot; 13 | } 14 | 15 | float3x3 getLookRotationMatrix(float3 look, float3 up) { 16 | float3 right = cross(up, look); 17 | up = cross(look, right); 18 | look = normalize(look); 19 | up = normalize(up); 20 | right = normalize(right); 21 | return getRotateMatrix(right, up, look); 22 | } 23 | 24 | float3 rotateX(float3 v, float angle) { 25 | float 26 | s = sin(angle), 27 | c = cos(angle); 28 | float3x3 rot = float3x3( 29 | 1, 0, 0, 30 | 0, c, -s, 31 | 0, s, c 32 | ); 33 | return mul(rot, v); 34 | } 35 | 36 | float3 rotateY(float3 v, float angle) { 37 | float 38 | s = sin(angle), 39 | c = cos(angle); 40 | float3x3 rot = float3x3( 41 | c, 0, s, 42 | 0, 1, 0, 43 | -s, 0, c 44 | ); 45 | return mul(rot, v); 46 | } 47 | 48 | float3 rotateZ(float3 v, float angle) { 49 | float 50 | s = sin(angle), 51 | c = cos(angle); 52 | float3x3 rot = float3x3( 53 | c, -s, 0, 54 | s, c, 0, 55 | 0, 0, 1 56 | ); 57 | return mul(rot, v); 58 | } 59 | 60 | float3 rotate(float3 v, float3 axis, float angle) { 61 | float 62 | s = sin(angle), 63 | c = cos(angle); 64 | float 65 | nx = axis.x, 66 | ny = axis.y, 67 | nz = axis.z; 68 | float3x3 rot = float3x3( 69 | nx*nx*(1 - c) + c, nx*ny*(1 - c) - nz*s, nz*nx*(1 - c) + ny*s, 70 | nx*ny*(1 - c) + nz*s, ny*ny*(1 - c) + c, ny*nz*(1 - c) - nx*s, 71 | nz*nx*(1 - c) - ny*s, ny*nz*(1 - c) + nx*s, nz*nz*(1 - c) + c 72 | ); 73 | return mul(rot, v); 74 | } 75 | #endif // TRANSFORM_INCLUDED -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CGINC/Transform.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 97d2414e8c0631a4e92f31a14936d764 3 | timeCreated: 1461646327 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CubeMat.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: CubeMat 10 | m_Shader: {fileID: 4800000, guid: 488e4be355e2243ce8cace5a22f33a80, type: 3} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 2800000, guid: 55e1ec7f367c84c5cbd8460ee787f97e, type: 3} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MainTex2: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _MetallicGlossMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _OcclusionMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | - _ParallaxMap: 58 | m_Texture: {fileID: 0} 59 | m_Scale: {x: 1, y: 1} 60 | m_Offset: {x: 0, y: 0} 61 | m_Floats: 62 | - _Amount: 0 63 | - _BumpScale: 1 64 | - _Cutoff: 0.5 65 | - _DetailNormalMapScale: 1 66 | - _DstBlend: 0 67 | - _GlossMapScale: 1 68 | - _Glossiness: 0.5 69 | - _GlossyReflections: 1 70 | - _Metallic: 0 71 | - _Mode: 0 72 | - _OcclusionStrength: 1 73 | - _Parallax: 0.02 74 | - _Ratio: 0 75 | - _Size: 0.01 76 | - _SmoothnessTextureChannel: 0 77 | - _SpecularHighlights: 1 78 | - _Speed: 1 79 | - _SrcBlend: 1 80 | - _UVSec: 0 81 | - _ZWrite: 1 82 | m_Colors: 83 | - _Color: {r: 1, g: 1, b: 1, a: 1} 84 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 85 | - _Num: {r: 512, g: 512, b: 0, a: 0} 86 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CubeMat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c2c03a58be283481d91903581a5a29bd 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/Cubes.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b1ae10bb05ba84464b8967120fcc7da2 3 | timeCreated: 1538178292 4 | licenseType: Pro 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CubesCurl.compute: -------------------------------------------------------------------------------- 1 | #pragma kernel MainCS 2 | 3 | //#include "UnityCG.cginc" 4 | #include "./CGINC/SimplexNoise3Db.cginc" 5 | 6 | 7 | // スレッドグループのスレッドサイズ 8 | #define ThreadBlockSize 256 9 | #define EPSILON 1e-3 10 | 11 | // data 12 | struct CubeData 13 | { 14 | float3 position; 15 | float3 velocity; 16 | float4 color; 17 | float3 basePos; 18 | float2 uv; 19 | float time; 20 | }; 21 | 22 | RWStructuredBuffer _CubeDataBuffer; 23 | float _Time; 24 | float4 _Positions[1000]; 25 | 26 | float rand(float3 co) 27 | { 28 | return frac(sin(dot(co.xyz, float3(12.9898, 78.233, 45.5432))) * 43758.5453); 29 | } 30 | 31 | float3 curlNoise(float3 coord) 32 | { 33 | float3 dx = float3(EPSILON, 0.0, 0.0); 34 | float3 dy = float3(0.0, EPSILON, 0.0); 35 | float3 dz = float3(0.0, 0.0, EPSILON); 36 | 37 | float3 dpdx0 = simplexNoise(coord - dx); 38 | float3 dpdx1 = simplexNoise(coord + dx); 39 | float3 dpdy0 = simplexNoise(coord - dy); 40 | float3 dpdy1 = simplexNoise(coord + dy); 41 | float3 dpdz0 = simplexNoise(coord - dz); 42 | float3 dpdz1 = simplexNoise(coord + dz); 43 | 44 | float x = dpdy1.z - dpdy0.z + dpdz1.y - dpdz0.y; 45 | float y = dpdz1.x - dpdz0.x + dpdx1.z - dpdx0.z; 46 | float z = dpdx1.y - dpdx0.y + dpdy1.x - dpdy0.x; 47 | 48 | return float3(x, y, z) / EPSILON * 2.0; 49 | } 50 | 51 | float rand(float2 co) 52 | { 53 | return frac(sin(dot(co.xy, float2(12.9898, 78.233))) * 43758.5453); 54 | } 55 | 56 | 57 | [numthreads(ThreadBlockSize, 1, 1)] 58 | void MainCS(uint3 id : SV_DispatchThreadID) 59 | { 60 | 61 | const unsigned int index = id.x; 62 | 63 | float3 pos = _CubeDataBuffer[index].position; 64 | 65 | if(_Time==0){ 66 | float3 vv = float3( 67 | rand(_CubeDataBuffer[index].basePos.xy) - 0.5, 68 | rand(_CubeDataBuffer[index].basePos.xy + 100.0) - 0.5, 69 | rand(_CubeDataBuffer[index].basePos.xy + 200.0) - 0.5 70 | ); 71 | _CubeDataBuffer[index].velocity = vv * 0.01; 72 | _CubeDataBuffer[index].position = _CubeDataBuffer[index].basePos; 73 | } 74 | 75 | float3 force = curlNoise(pos*0.5) - _CubeDataBuffer[index].velocity.xyz; 76 | 77 | _CubeDataBuffer[index].velocity += force * 0.00001; 78 | _CubeDataBuffer[index].velocity *= 0.99;//force * 0.001; 79 | _CubeDataBuffer[index].position += _CubeDataBuffer[index].velocity; 80 | 81 | } -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CubesCurl.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1fd264c8809a94ce294c0ffb2d7a9672 3 | timeCreated: 1538178099 4 | licenseType: Pro 5 | ComputeShaderImporter: 6 | externalObjects: {} 7 | currentAPIMask: 196608 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/CubesDepth.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 488e4be355e2243ce8cace5a22f33a80 3 | timeCreated: 1538178100 4 | licenseType: Pro 5 | ShaderImporter: 6 | externalObjects: {} 7 | defaultTextures: [] 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/Old.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: afa5d4d6b055b4d738073b80a4fd16d1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/Old/Cubes.shader: -------------------------------------------------------------------------------- 1 | Shader "Cubes" 2 | { 3 | Properties 4 | { 5 | _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {} 6 | } 7 | 8 | SubShader 9 | { 10 | Tags 11 | { 12 | "Queue"="Transparent" 13 | "IgnoreProjector"="True" 14 | "RenderType"="Transparent" 15 | } 16 | Cull Off 17 | Lighting Off 18 | ZWrite On 19 | Blend SrcAlpha OneMinusSrcAlpha 20 | 21 | Pass 22 | { 23 | CGPROGRAM 24 | #pragma vertex vert 25 | #pragma fragment frag 26 | //#pragma surface surf Standard addshadow fullforwardshadows 27 | #pragma multi_compile_instancing 28 | 29 | #include "UnityCG.cginc" 30 | 31 | // ドカベンロゴのデータ 32 | struct CubeData 33 | { 34 | float3 position; 35 | float3 velocity; 36 | }; 37 | 38 | struct appdata_t 39 | { 40 | float4 vertex : POSITION; 41 | float2 texcoord : TEXCOORD0; 42 | UNITY_VERTEX_INPUT_INSTANCE_ID 43 | }; 44 | 45 | struct v2f 46 | { 47 | float4 vertex : SV_POSITION; 48 | float2 texcoord : TEXCOORD0; 49 | }; 50 | 51 | // ドカベンロゴのバッファ 52 | StructuredBuffer _CubeDataBuffer; 53 | 54 | 55 | // ドカベンMeshのScale(サイズ固定) 56 | float3 _DokabenMeshScale; 57 | 58 | sampler2D _MainTex; 59 | float4 _MainTex_ST; 60 | float4 _MainTex_TexelSize; 61 | 62 | v2f vert (appdata_t v, uint instanceID : SV_InstanceID) 63 | { 64 | v2f o; 65 | UNITY_SETUP_INSTANCE_ID(v); 66 | // スケールと位置(平行移動)を適用 67 | float4x4 matrix_ = (float4x4)0; 68 | //スケール 69 | matrix_._11_22_33_44 = float4(0.2,0.2,0.2,1.0);//float4(_DokabenMeshScale.xyz, 1.0); 70 | //移動 71 | matrix_._14_24_34 += _CubeDataBuffer[instanceID].position; 72 | v.vertex = mul(matrix_, v.vertex); 73 | 74 | o.vertex = UnityObjectToClipPos(v.vertex); 75 | o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex); 76 | return o; 77 | } 78 | 79 | fixed4 frag (v2f i) : SV_Target 80 | { 81 | fixed4 col = tex2D(_MainTex, i.texcoord); 82 | return col; 83 | } 84 | ENDCG 85 | } 86 | } 87 | } 88 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/Old/Cubes.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: acc712fca417244f9aa989bc0eac4fcd 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/Old/Cubes2.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 20dae219ece094df4813efd0c1a63585 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/Old/Cubes3.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 740ad6ca24d83489c8edd42dfe2d9131 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/Old/Cubes4.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1e02f021994e244ab98454aff64f2127 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/Old/CubesCurlSrc.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 87948459dd1464f899df87b65141fb29 3 | ComputeShaderImporter: 4 | externalObjects: {} 5 | currentAPIMask: 65536 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/Utils.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8cfbc8c92877b41fa8b42ac4f8468411 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/Utils/RandomPointOnMesh.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | 4 | namespace Utils { 5 | 6 | public class RandomPointOnMesh { 7 | 8 | public Vector3 v; 9 | public Vector2 uv; 10 | 11 | public static Vector3 Sample (Mesh mesh) { 12 | int[] triangles = mesh.triangles; 13 | int index = Mathf.FloorToInt(Random.value * (triangles.Length / 3)); 14 | Vector3 v0 = mesh.vertices[triangles[index * 3 + 0]]; 15 | Vector3 v1 = mesh.vertices[triangles[index * 3 + 1]]; 16 | Vector3 v2 = mesh.vertices[triangles[index * 3 + 2]]; 17 | return Vector3.Lerp(v0, Vector3.Lerp(v1, v2, Random.value), Random.value); 18 | } 19 | 20 | public static RandomPointOnMesh Sample2 (Mesh mesh) { 21 | int[] triangles = mesh.triangles; 22 | int index = Mathf.FloorToInt(Random.value * (triangles.Length / 3)); 23 | 24 | Vector3 v0 = mesh.vertices[triangles[index * 3 + 0]]; 25 | Vector3 v1 = mesh.vertices[triangles[index * 3 + 1]]; 26 | Vector3 v2 = mesh.vertices[triangles[index * 3 + 2]]; 27 | 28 | Vector2 uv0 = mesh.uv[triangles[index * 3 + 0]]; 29 | Vector2 uv1 = mesh.uv[triangles[index * 3 + 1]]; 30 | Vector2 uv2 = mesh.uv[triangles[index * 3 + 2]]; 31 | 32 | float rand1 = Random.value; 33 | float rand2 = Random.value; 34 | 35 | RandomPointOnMesh m = new RandomPointOnMesh(); 36 | m.v = Vector3.Lerp(v0, Vector3.Lerp(v1, v2, rand1), rand2); 37 | m.uv = Vector2.Lerp(uv0, Vector2.Lerp(uv1, uv2, rand1), rand2); 38 | 39 | return m; 40 | } 41 | 42 | 43 | 44 | } 45 | 46 | } -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/Utils/RandomPointOnMesh.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cbfe6f60a289a4c3c8af809af958ca78 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/lenna.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitasenjudesign/UnityComputeShaderTest/9dc0b28a4461fd8c3f55acea77cec5550211646e/UnityComputeShaderTest/Assets/01/script/lenna.jpg -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/01/script/lenna.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 55e1ec7f367c84c5cbd8460ee787f97e 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 99d83b80139b546ce8465da7759fee77 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/scene.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7312d787dcd484ab08ee622db4cd2f8b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/scene/MeshParticle.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bd9172badec0f4e3fbc96fa5631c76b1 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1261ec52a56f14515b4a7bf4492be04a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/CGINC.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 81b024cac01164632b56f46269d061ad 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/CGINC/BillBoardCommon.cginc: -------------------------------------------------------------------------------- 1 | // Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld' 2 | 3 | #ifndef BILLBOARD_INCLUDED 4 | #define BILLBOARD_INCLUDED 5 | 6 | float4 vPosBillboard(float4 pos, float2 uv, float size){ 7 | float4 center = pos; 8 | center.xy -= uv-0.5; 9 | half4 vPos = mul(UNITY_MATRIX_MV, center); 10 | vPos.xy += (uv-0.5)*size; 11 | return vPos; 12 | } 13 | 14 | float4 wPosOnePoleBillboard(float4 pos, float2 uv, float size){ 15 | float4 center = pos; 16 | center.xy -= uv-0.5; 17 | center = mul(unity_ObjectToWorld, center); 18 | 19 | float3 forward = normalize(_WorldSpaceCameraPos - center.xyz); 20 | float3 up = UNITY_MATRIX_V[1].xyz; 21 | float3 right = normalize(cross(forward, up)); 22 | up = normalize(cross(right, forward)); 23 | 24 | float3 wPos = center.xyz + ((uv.x-0.5) * right + (uv.y-0.5) * up)*size; 25 | return float4(wPos,1.0); 26 | } 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/CGINC/BillBoardCommon.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: db7abd1f3de1c4877b35159b2060c8d8 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/CGINC/ClassicNoise2D.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5731d4b607525477bb38464b1701940e 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/CGINC/ClassicNoise3D.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dc0c2b664937f483b913ce2d7b39dc7c 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/CGINC/ColorCollect.cginc: -------------------------------------------------------------------------------- 1 | #ifndef COLOR_COLLECT 2 | #define COLOR_COLLECT 3 | 4 | float3 rgb2hsv(float3 c) 5 | { 6 | float4 K = float4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); 7 | float4 p = lerp(float4(c.bg, K.wz), float4(c.gb, K.xy), step(c.b, c.g)); 8 | float4 q = lerp(float4(p.xyw, c.r), float4(c.r, p.yzx), step(p.x, c.r)); 9 | 10 | float d = q.x - min(q.w, q.y); 11 | float e = 1.0e-10; 12 | return float3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); 13 | } 14 | float3 hsv2rgb(float3 c) 15 | { 16 | float4 K = float4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); 17 | float3 p = abs(frac(c.xxx + K.xyz) * 6.0 - K.www); 18 | return lerp(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y) * c.z; 19 | } 20 | 21 | //s:sourceColor, b:blendColor 22 | #define blendOverlay(s,b) (b < 0.5) ? (2.0 * s * b) : (1.0 - 2.0 * (1.0 - s) * (1.0 - b)) 23 | #define blendScreen(s,b) 1.0 - ((1.0 - s) * (1.0 - b)) 24 | 25 | #endif // COLOR_COLLECT 26 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/CGINC/ColorCollect.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 214cb905c4e58416e96e37e695ef1efe 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/CGINC/CoonsCurve.cginc: -------------------------------------------------------------------------------- 1 | #ifndef COONSCURVE_INCLUDED 2 | #define COONSCURVE_INCLUDED 3 | 4 | float3 coons(float t, float3 p0, float3 p1, float3 v0, float3 v1) 5 | { 6 | float3 a = 2*p0 - 2*p1 + v0 + v1; 7 | float3 b = -3*p0 + 3*p1 - 2*v0 - v1; 8 | 9 | float t2 = t*t; 10 | float t3 = t2*t; 11 | 12 | return a*t3 + b*t2 + v0*t + p0; 13 | } 14 | 15 | float2 coons(float t, float2 p0, float2 p1, float2 v0, float2 v1) 16 | { 17 | float2 a = 2*p0 - 2*p1 + v0 + v1; 18 | float2 b = -3*p0 + 3*p1 - 2*v0 - v1; 19 | 20 | float t2 = t*t; 21 | float t3 = t2*t; 22 | 23 | return a*t3 + b*t2 + v0*t + p0; 24 | } 25 | 26 | float coons(float t, float p0, float p1, float v0, float v1) 27 | { 28 | float a = 2*p0 - 2*p1 + v0 + v1; 29 | float b = -3*p0 + 3*p1 - 2*v0 - v1; 30 | 31 | float t2 = t*t; 32 | float t3 = t2*t; 33 | 34 | return a*t3 + b*t2 + v0*t + p0; 35 | } 36 | 37 | #endif -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/CGINC/CoonsCurve.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c7ef4999583ab4beebe4c10f9c3605c9 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/CGINC/NoiseMath.cginc: -------------------------------------------------------------------------------- 1 |  2 | // Ramp関数 3 | float Ramp(float r) 4 | { 5 | if (r >= 1.0) 6 | { 7 | return 1.0; 8 | } 9 | else if (r <= -1.0) 10 | { 11 | return -1.0; 12 | } 13 | else 14 | { 15 | // ((15.0 / 8.0) * r) - ((10.0 / 8.0) * (r * r * r)) + ((3.0 / 8.0) * (r * r * r * r * r)) 16 | return (1.875 * r) - (1.25 * (r * r * r)) + (0.375 * (r * r * r * r * r)); 17 | } 18 | } 19 | 20 | float Fade(float t) 21 | { 22 | return t * t * t * (t * (t * 6.0 - 15.0) + 10.0); 23 | } 24 | 25 | float Lerp(float t, float a, float b) 26 | { 27 | return a + t * (b - a); 28 | } 29 | 30 | float Grad(int hash, float x, float y, float z) 31 | { 32 | int h = hash & 15; 33 | float u = (h < 8) ? x : y; 34 | float v = (h < 4) ? y : (h == 12 || h == 14) ? x : z; 35 | return ((h & 1) == 0 ? u : -u) + ((h & 2) == 0 ? v : -v); 36 | } 37 | 38 | float Rand(float3 co) 39 | { 40 | return frac(sin(dot(co.xyz, float3(12.9898, 78.233, 56.787))) * 43758.5453); 41 | } -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/CGINC/NoiseMath.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 43a6283d58afc4a3198487077e622d1c 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/CGINC/PostBlendCommon.cginc: -------------------------------------------------------------------------------- 1 | #ifndef POST_BLEND_INCLUDE 2 | #define POST_BLEND_INCLUDE 3 | 4 | #define WET(n) o.blendAlpha.w = n; 5 | struct pOut 6 | { 7 | half4 blendColor : SV_Target0; 8 | half4 blendAlpha : SV_Target1; 9 | half4 mull : SV_Target2; 10 | half4 add : SV_Target3; 11 | }; 12 | 13 | half blendWeight(half depth){ 14 | depth = abs(depth); 15 | return clamp(pow(depth, -4),1e-4,5e10); 16 | } 17 | half blendDepth(half depth){ 18 | depth = abs(depth); 19 | return max(0,_ProjectionParams.z - depth); 20 | } 21 | 22 | pOut alphaBlend(half4 c, half depth){ 23 | half w = blendWeight(depth); 24 | pOut o; 25 | 26 | o.blendColor = half4(c.rgb*c.a*w,c.a); 27 | o.blendAlpha = half4(c.a*w, 0, 0, 0); 28 | o.mull = 0; 29 | o.add = 0; 30 | 31 | return o; 32 | } 33 | 34 | pOut additiveBlend(half4 c){ 35 | c.rgb *= c.a; 36 | pOut o; 37 | 38 | o.blendColor = 0; 39 | o.blendAlpha = half4(0,0,0,0); 40 | o.mull = 0; 41 | o.add = half4(c.rgb,0); 42 | 43 | return o; 44 | } 45 | 46 | pOut multiplyBlend(half4 c){ 47 | c.rgb = lerp(half3(1,1,1), c.rgb, c.a); 48 | // c.rgb = saturate(c.rgb); 49 | pOut o; 50 | 51 | o.blendColor = 1; 52 | o.blendAlpha = 1; 53 | o.mull = half4(c.rgb,1); 54 | o.add = 1; 55 | 56 | return o; 57 | } 58 | 59 | pOut alphaDepth(half4 c, half depth){ 60 | c.a = saturate(c.a*5); 61 | pOut o; 62 | 63 | o.blendColor = 0; 64 | o.blendAlpha = half4(0, c.a*blendDepth(depth), 0, 0); 65 | o.mull = 0; 66 | o.add = 0; 67 | 68 | return o; 69 | } 70 | pOut multiplyDepth(half4 c, half depth){ 71 | c.rgb = lerp(half3(1,1,1), c.rgb, c.a); 72 | c.a = distance(half3(1,1,1), c.rgb); 73 | c.a = saturate(c.a*5); 74 | pOut o; 75 | 76 | o.blendColor = 0; 77 | o.blendAlpha = 0; 78 | o.mull = half4(0,0,0,c.a*blendDepth(depth)); 79 | o.add = 0; 80 | 81 | return o; 82 | } 83 | pOut additiveDepth(half4 c, half depth){ 84 | c.rgb *= c.a; 85 | c.a = distance(half3(0,0,0), c.rgb); 86 | c.a = saturate(c.a*5); 87 | pOut o; 88 | 89 | o.blendColor = 0; 90 | o.blendAlpha = 0; 91 | o.mull = 0; 92 | o.add = half4(0,0,0,c.a*blendDepth(depth)); 93 | 94 | return o; 95 | } 96 | 97 | #endif -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/CGINC/PostBlendCommon.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 11cb02ca3cf7b4a5d976209a7be20332 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/CGINC/Quaternion.cginc: -------------------------------------------------------------------------------- 1 | #ifndef QUATERNION_INCLUDED 2 | #define QUATERNION_INCLUDED 3 | 4 | #include "/Assets/CGINC/Random.cginc" 5 | #define PI2 6.28318530718 6 | // Quaternion multiplication. 7 | // http://mathworld.wolfram.com/Quaternion.html 8 | float4 qmul(float4 q1, float4 q2) 9 | { 10 | return float4( 11 | q2.xyz * q1.w + q1.xyz * q2.w + cross(q1.xyz, q2.xyz), 12 | q1.w * q2.w - dot(q1.xyz, q2.xyz) 13 | ); 14 | } 15 | 16 | //Convert Matrix to Quaternion 17 | // http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/ 18 | float4 matrix_to_quaternion(float3x3 m) { 19 | 20 | float tr = m[0][0] + m[1][1] + m[2][2]; 21 | float4 q = float4(0, 0, 0, 0); 22 | 23 | if (tr > 0) { 24 | float s = sqrt(tr + 1.0) * 2; // S=4*qw 25 | q.w = 0.25 * s; 26 | q.x = (m[2][1] - m[1][2]) / s; 27 | q.y = (m[0][2] - m[2][0]) / s; 28 | q.z = (m[1][0] - m[0][1]) / s; 29 | } 30 | else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) { 31 | float s = sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]) * 2; // S=4*qx 32 | q.w = (m[2][1] - m[1][2]) / s; 33 | q.x = 0.25 * s; 34 | q.y = (m[0][1] + m[1][0]) / s; 35 | q.z = (m[0][2] + m[2][0]) / s; 36 | } 37 | else if (m[1][1] > m[2][2]) { 38 | float s = sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]) * 2; // S=4*qy 39 | q.w = (m[0][2] - m[2][0]) / s; 40 | q.x = (m[0][1] + m[1][0]) / s; 41 | q.y = 0.25 * s; 42 | q.z = (m[1][2] + m[2][1]) / s; 43 | } 44 | else { 45 | float s = sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]) * 2; // S=4*qz 46 | q.w = (m[1][0] - m[0][1]) / s; 47 | q.x = (m[0][2] + m[2][0]) / s; 48 | q.y = (m[1][2] + m[2][1]) / s; 49 | q.z = 0.25 * s; 50 | } 51 | 52 | return q; 53 | } 54 | 55 | // Rotate a vector with a rotation quaternion. 56 | // http://mathworld.wolfram.com/Quaternion.html 57 | float3 rotateWithQuaternion(float3 v, float4 r) 58 | { 59 | float4 r_c = r * float4(-1.0, -1.0, -1.0, 1.0); 60 | return qmul(r, qmul(float4(v, 0.0), r_c)).xyz; 61 | } 62 | 63 | float4 getAngleAxisRotation(float3 v, float3 axis, float angle) { 64 | axis = normalize(axis); 65 | float s, c; 66 | sincos(angle*0.5, s, c); 67 | return float4(axis.x*s, axis.y*s, axis.z*s, c); 68 | } 69 | 70 | float3 rotateAngleAxis(float3 v, float3 axis, float angle) { 71 | float4 q = getAngleAxisRotation(v, axis, angle); 72 | return rotateWithQuaternion(v, q); 73 | } 74 | 75 | float4 fromToRotation(float3 from, float3 to) { 76 | float3 77 | v1 = normalize(from), 78 | v2 = normalize(to), 79 | cr = cross(v1, v2); 80 | float4 q = float4(cr, 1 + dot(v1, v2)); 81 | return normalize(q); 82 | } 83 | 84 | float4 getRandomRotation(float2 uv) { 85 | 86 | // Uniform random unit quaternion. 87 | // http://tog.acm.org/resources/GraphicsGems/gemsiii/urot.c 88 | float3 r3 = rand3(uv); 89 | 90 | float r1 = sqrt(1.0 - r3.x); 91 | float r2 = sqrt(r3.x); 92 | float t1 = PI2 * r3.y; 93 | float t2 = PI2 * r3.z; 94 | 95 | return float4(sin(t1) * r1, cos(t1) * r1, sin(t2) * r2, cos(t2) * r2); 96 | } 97 | 98 | #endif -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/CGINC/Quaternion.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 16982f8b3f52b451791e4ed7a0a505b8 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/CGINC/Random.cginc: -------------------------------------------------------------------------------- 1 | #ifndef RANDOM_INCLUDED 2 | #define RANDOM_INCLUDED 3 | 4 | float rand( float2 co ){ 5 | return frac(sin(dot(co.xy, float2(12.9898, 78.233))) * 43758.5453); 6 | } 7 | 8 | float3 rand3( float2 seed ){ 9 | float t = sin(seed.x + seed.y * 1e3); 10 | return float3(frac(t*1e4), frac(t*1e6), frac(t*1e5)); 11 | } 12 | 13 | #endif // RANDOM_INCLUDED 14 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/CGINC/Random.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 58a6df997fc024b0a9f76839f9e35f28 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/CGINC/SimplexNoise2D.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 13c03da1586494d94bd8fa9c35869dcc 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/CGINC/SimplexNoise3D.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7d2e6abbc894d494cb35b994062a57ad 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/CGINC/SimplexNoise3Db.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: db5b659d7956a440a9608128370ba0e0 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/CGINC/Transform.cginc: -------------------------------------------------------------------------------- 1 | #ifndef TRANSFORM_INCLUDED 2 | #define TRANSFORM_INCLUDED 3 | // calculating formula from 4 | // http://www.cg.info.hiroshima-cu.ac.jp/~miyazaki/knowledge/tech07.html 5 | 6 | float3x3 getRotateMatrix(float3 right, float3 up, float3 forward) { 7 | float3x3 rot = float3x3( 8 | right.x, up.x, forward.x, 9 | right.y, up.y, forward.y, 10 | right.z, up.z, forward.z 11 | ); 12 | return rot; 13 | } 14 | 15 | float3x3 getLookRotationMatrix(float3 look, float3 up) { 16 | float3 right = cross(up, look); 17 | up = cross(look, right); 18 | look = normalize(look); 19 | up = normalize(up); 20 | right = normalize(right); 21 | return getRotateMatrix(right, up, look); 22 | } 23 | 24 | float3 rotateX(float3 v, float angle) { 25 | float 26 | s = sin(angle), 27 | c = cos(angle); 28 | float3x3 rot = float3x3( 29 | 1, 0, 0, 30 | 0, c, -s, 31 | 0, s, c 32 | ); 33 | return mul(rot, v); 34 | } 35 | 36 | float3 rotateY(float3 v, float angle) { 37 | float 38 | s = sin(angle), 39 | c = cos(angle); 40 | float3x3 rot = float3x3( 41 | c, 0, s, 42 | 0, 1, 0, 43 | -s, 0, c 44 | ); 45 | return mul(rot, v); 46 | } 47 | 48 | float3 rotateZ(float3 v, float angle) { 49 | float 50 | s = sin(angle), 51 | c = cos(angle); 52 | float3x3 rot = float3x3( 53 | c, -s, 0, 54 | s, c, 0, 55 | 0, 0, 1 56 | ); 57 | return mul(rot, v); 58 | } 59 | 60 | float3 rotate(float3 v, float3 axis, float angle) { 61 | float 62 | s = sin(angle), 63 | c = cos(angle); 64 | float 65 | nx = axis.x, 66 | ny = axis.y, 67 | nz = axis.z; 68 | float3x3 rot = float3x3( 69 | nx*nx*(1 - c) + c, nx*ny*(1 - c) - nz*s, nz*nx*(1 - c) + ny*s, 70 | nx*ny*(1 - c) + nz*s, ny*ny*(1 - c) + c, ny*nz*(1 - c) - nx*s, 71 | nz*nx*(1 - c) - ny*s, ny*nz*(1 - c) + nx*s, nz*nz*(1 - c) + c 72 | ); 73 | return mul(rot, v); 74 | } 75 | #endif // TRANSFORM_INCLUDED -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/CGINC/Transform.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf4f0e65fe3bb42099dc50e651807eab 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/FaceDots.compute: -------------------------------------------------------------------------------- 1 | #pragma kernel MainCS 2 | 3 | //#include "UnityCG.cginc" 4 | #include "./CGINC/SimplexNoise3Db.cginc" 5 | 6 | // スレッドグループのスレッドサイズ 7 | #define ThreadBlockSize 256 8 | #define EPSILON 1e-3 9 | 10 | // data 11 | struct DotData 12 | { 13 | // 座標 14 | float3 position; 15 | float3 velocity; 16 | float3 scale; 17 | float4 color; 18 | float3 basePos; 19 | //float3 rotation; 20 | float2 uv; 21 | float time; 22 | }; 23 | 24 | RWStructuredBuffer _CubeDataBuffer; 25 | float _DeltaTime; 26 | float4 _Positions[2000]; 27 | float4 _Uvv[2000]; 28 | 29 | float rand(float3 co) 30 | { 31 | return frac(sin(dot(co.xyz, float3(12.9898, 78.233, 45.5432))) * 43758.5453); 32 | } 33 | 34 | float3 curlNoise(float3 coord) 35 | { 36 | float3 dx = float3(EPSILON, 0.0, 0.0); 37 | float3 dy = float3(0.0, EPSILON, 0.0); 38 | float3 dz = float3(0.0, 0.0, EPSILON); 39 | 40 | float3 dpdx0 = simplexNoise(coord - dx); 41 | float3 dpdx1 = simplexNoise(coord + dx); 42 | float3 dpdy0 = simplexNoise(coord - dy); 43 | float3 dpdy1 = simplexNoise(coord + dy); 44 | float3 dpdz0 = simplexNoise(coord - dz); 45 | float3 dpdz1 = simplexNoise(coord + dz); 46 | 47 | float x = dpdy1.z - dpdy0.z + dpdz1.y - dpdz0.y; 48 | float y = dpdz1.x - dpdz0.x + dpdx1.z - dpdx0.z; 49 | float z = dpdx1.y - dpdx0.y + dpdy1.x - dpdy0.x; 50 | 51 | return float3(x, y, z) / EPSILON * 2.0; 52 | } 53 | 54 | float rand(float2 co) 55 | { 56 | return frac(sin(dot(co.xy, float2(12.9898, 78.233))) * 43758.5453); 57 | } 58 | 59 | 60 | [numthreads(ThreadBlockSize, 1, 1)] 61 | void MainCS(uint3 id : SV_DispatchThreadID) 62 | { 63 | // インデックス取得 64 | const unsigned int index = id.x; 65 | 66 | float3 pos = _CubeDataBuffer[index].position; 67 | DotData data = _CubeDataBuffer[index]; 68 | 69 | data.time += _DeltaTime; 70 | 71 | if( data.time > 3.0 ){ 72 | //0.3; 73 | data.time = 0; 74 | 75 | int ii = index % 1000; 76 | data.position = _Positions[ii].xyz;///_CubeDataBuffer[index].basePos; 77 | data.uv = float2( 78 | _Uvv[ii].x, 79 | _Uvv[ii].y 80 | );//_Uvs[ii].xy;///_CubeDataBuffer[index].basePos; 81 | 82 | } 83 | 84 | //_CubeDataBuffer[index].velocity *= 0.99;//force * 0.001; 85 | data.velocity = curlNoise(pos) * 0.001; 86 | //_CubeDataBuffer[index].rotation.x += 0.5; 87 | data.position += _CubeDataBuffer[index].velocity; 88 | 89 | _CubeDataBuffer[index] = data; 90 | 91 | } -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/FaceDots.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3aa1f3f6f9400437c8d0c71a310213bc 3 | ComputeShaderImporter: 4 | externalObjects: {} 5 | currentAPIMask: 65536 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/FaceDots.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c20129e1befb4498eaa3017c4e270fb3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/FaceDots.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 057e5176ae1084042a69355ff954e59d 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/FaceDotsMat.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: FaceDotsMat 10 | m_Shader: {fileID: 4800000, guid: 057e5176ae1084042a69355ff954e59d, type: 3} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 2800000, guid: 55e1ec7f367c84c5cbd8460ee787f97e, type: 3} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MainTex2: 46 | m_Texture: {fileID: 2800000, guid: 55e1ec7f367c84c5cbd8460ee787f97e, type: 3} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _MetallicGlossMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _OcclusionMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | - _ParallaxMap: 58 | m_Texture: {fileID: 0} 59 | m_Scale: {x: 1, y: 1} 60 | m_Offset: {x: 0, y: 0} 61 | m_Floats: 62 | - _Amount: 0 63 | - _BumpScale: 1 64 | - _Cutoff: 0.5 65 | - _DetailNormalMapScale: 1 66 | - _DstBlend: 0 67 | - _GlossMapScale: 1 68 | - _Glossiness: 0.278 69 | - _GlossyReflections: 1 70 | - _Metallic: 0.44 71 | - _Mode: 0 72 | - _OcclusionStrength: 1 73 | - _Parallax: 0.02 74 | - _Ratio: 0 75 | - _Size: 0.007 76 | - _SmoothnessTextureChannel: 0 77 | - _SpecularHighlights: 1 78 | - _Speed: 1 79 | - _SrcBlend: 1 80 | - _UVSec: 0 81 | - _ZWrite: 1 82 | m_Colors: 83 | - _Color: {r: 1, g: 1, b: 1, a: 1} 84 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 85 | - _Num: {r: 256, g: 256, b: 0, a: 0} 86 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/FaceDotsMat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b7abebd9ba09d4256af9016b4fc0e6e6 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/FaceDummyMesh.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Runtime.InteropServices; 3 | using UnityEngine; 4 | using UnityEngine.Rendering; 5 | 6 | public class FaceDummyMesh : MonoBehaviour{ 7 | 8 | [SerializeField] private Mesh _mesh; 9 | 10 | void Start(){ 11 | 12 | } 13 | 14 | void Update(){ 15 | 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/02/script/FaceDummyMesh.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1855040e533204419ae9eba25b02c7d2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a48e56d948b534522b4e69faa5f9cbb9 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/mesh.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aae82369d27e34b34a9309a86b55628b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/mesh/ModelMat.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: ModelMat 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: _SPECULARHIGHLIGHTS_OFF 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 2800000, guid: 5c19e8cc6599c42b3a614d0d65ea41c3, type: 3} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MetallicGlossMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _OcclusionMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _ParallaxMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | m_Floats: 58 | - _BumpScale: 1 59 | - _Cutoff: 0.5 60 | - _DetailNormalMapScale: 1 61 | - _DstBlend: 0 62 | - _GlossMapScale: 1 63 | - _Glossiness: 0 64 | - _GlossyReflections: 1 65 | - _InvFade: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 0 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 1, g: 1, b: 1, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} 79 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/mesh/ModelMat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 42ba47d11bb6b40ddb6d73eb26a46663 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/mesh/Model_01_01_10000.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitasenjudesign/UnityComputeShaderTest/9dc0b28a4461fd8c3f55acea77cec5550211646e/UnityComputeShaderTest/Assets/03/mesh/Model_01_01_10000.fbx -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/mesh/Model_01_01_10000.fbx.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 42469d38e59a2490db1363689452b460 3 | ModelImporter: 4 | serializedVersion: 23 5 | fileIDToRecycleName: 6 | 100000: //RootNode 7 | 400000: //RootNode 8 | 2100000: dennis10000_baked_material 9 | 2300000: //RootNode 10 | 3300000: //RootNode 11 | 4300000: Dennis_10000 12 | externalObjects: {} 13 | materials: 14 | importMaterials: 1 15 | materialName: 0 16 | materialSearch: 1 17 | materialLocation: 1 18 | animations: 19 | legacyGenerateAnimations: 4 20 | bakeSimulation: 0 21 | resampleCurves: 1 22 | optimizeGameObjects: 0 23 | motionNodeName: 24 | rigImportErrors: 25 | rigImportWarnings: 26 | animationImportErrors: 27 | animationImportWarnings: 28 | animationRetargetingWarnings: 29 | animationDoRetargetingWarnings: 0 30 | importAnimatedCustomProperties: 0 31 | importConstraints: 0 32 | animationCompression: 1 33 | animationRotationError: 0.5 34 | animationPositionError: 0.5 35 | animationScaleError: 0.5 36 | animationWrapMode: 0 37 | extraExposedTransformPaths: [] 38 | extraUserProperties: [] 39 | clipAnimations: [] 40 | isReadable: 1 41 | meshes: 42 | lODScreenPercentages: [] 43 | globalScale: 100 44 | meshCompression: 0 45 | addColliders: 0 46 | importVisibility: 1 47 | importBlendShapes: 1 48 | importCameras: 1 49 | importLights: 1 50 | swapUVChannels: 0 51 | generateSecondaryUV: 0 52 | useFileUnits: 1 53 | optimizeMeshForGPU: 1 54 | keepQuads: 0 55 | weldVertices: 1 56 | preserveHierarchy: 0 57 | indexFormat: 0 58 | secondaryUVAngleDistortion: 8 59 | secondaryUVAreaDistortion: 15.000001 60 | secondaryUVHardAngle: 88 61 | secondaryUVPackMargin: 4 62 | useFileScale: 1 63 | previousCalculatedGlobalScale: 1 64 | hasPreviousCalculatedGlobalScale: 0 65 | tangentSpace: 66 | normalSmoothAngle: 60 67 | normalImportMode: 0 68 | tangentImportMode: 3 69 | normalCalculationMode: 4 70 | importAnimation: 1 71 | copyAvatar: 0 72 | humanDescription: 73 | serializedVersion: 2 74 | human: [] 75 | skeleton: [] 76 | armTwist: 0.5 77 | foreArmTwist: 0.5 78 | upperLegTwist: 0.5 79 | legTwist: 0.5 80 | armStretch: 0.05 81 | legStretch: 0.05 82 | feetSpacing: 0 83 | rootMotionBoneName: 84 | rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} 85 | hasTranslationDoF: 0 86 | hasExtraRoot: 0 87 | skeletonHasParents: 1 88 | lastHumanDescriptionAvatarSource: {instanceID: 0} 89 | animationType: 0 90 | humanoidOversampling: 1 91 | additionalBone: 0 92 | userData: 93 | assetBundleName: 94 | assetBundleVariant: 95 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/mesh/Model_01_01_10000_albedo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitasenjudesign/UnityComputeShaderTest/9dc0b28a4461fd8c3f55acea77cec5550211646e/UnityComputeShaderTest/Assets/03/mesh/Model_01_01_10000_albedo.jpg -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/mesh/Model_01_01_10000_albedo.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5c19e8cc6599c42b3a614d0d65ea41c3 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/mesh/cat3.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitasenjudesign/UnityComputeShaderTest/9dc0b28a4461fd8c3f55acea77cec5550211646e/UnityComputeShaderTest/Assets/03/mesh/cat3.fbx -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/mesh/cat3.fbx.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4e1e5bb3d0eaf4e68921b71be33b80f1 3 | ModelImporter: 4 | serializedVersion: 23 5 | fileIDToRecycleName: 6 | 100000: //RootNode 7 | 400000: //RootNode 8 | 2100000: No Name 9 | 2300000: //RootNode 10 | 3300000: //RootNode 11 | 4300000: Maneki_Neko_Paw_Right 12 | externalObjects: {} 13 | materials: 14 | importMaterials: 1 15 | materialName: 0 16 | materialSearch: 1 17 | materialLocation: 1 18 | animations: 19 | legacyGenerateAnimations: 4 20 | bakeSimulation: 0 21 | resampleCurves: 1 22 | optimizeGameObjects: 0 23 | motionNodeName: 24 | rigImportErrors: 25 | rigImportWarnings: 26 | animationImportErrors: 27 | animationImportWarnings: 28 | animationRetargetingWarnings: 29 | animationDoRetargetingWarnings: 0 30 | importAnimatedCustomProperties: 0 31 | importConstraints: 0 32 | animationCompression: 1 33 | animationRotationError: 0.5 34 | animationPositionError: 0.5 35 | animationScaleError: 0.5 36 | animationWrapMode: 0 37 | extraExposedTransformPaths: [] 38 | extraUserProperties: [] 39 | clipAnimations: [] 40 | isReadable: 1 41 | meshes: 42 | lODScreenPercentages: [] 43 | globalScale: 20 44 | meshCompression: 0 45 | addColliders: 0 46 | importVisibility: 1 47 | importBlendShapes: 1 48 | importCameras: 1 49 | importLights: 1 50 | swapUVChannels: 0 51 | generateSecondaryUV: 0 52 | useFileUnits: 1 53 | optimizeMeshForGPU: 1 54 | keepQuads: 0 55 | weldVertices: 1 56 | preserveHierarchy: 0 57 | indexFormat: 0 58 | secondaryUVAngleDistortion: 8 59 | secondaryUVAreaDistortion: 15.000001 60 | secondaryUVHardAngle: 88 61 | secondaryUVPackMargin: 4 62 | useFileScale: 1 63 | previousCalculatedGlobalScale: 1 64 | hasPreviousCalculatedGlobalScale: 0 65 | tangentSpace: 66 | normalSmoothAngle: 60 67 | normalImportMode: 0 68 | tangentImportMode: 3 69 | normalCalculationMode: 4 70 | importAnimation: 1 71 | copyAvatar: 0 72 | humanDescription: 73 | serializedVersion: 2 74 | human: [] 75 | skeleton: [] 76 | armTwist: 0.5 77 | foreArmTwist: 0.5 78 | upperLegTwist: 0.5 79 | legTwist: 0.5 80 | armStretch: 0.05 81 | legStretch: 0.05 82 | feetSpacing: 0 83 | rootMotionBoneName: 84 | rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} 85 | hasTranslationDoF: 0 86 | hasExtraRoot: 0 87 | skeletonHasParents: 1 88 | lastHumanDescriptionAvatarSource: {instanceID: 0} 89 | animationType: 0 90 | humanoidOversampling: 1 91 | additionalBone: 0 92 | userData: 93 | assetBundleName: 94 | assetBundleVariant: 95 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/mesh/catMat.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: catMat 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 2800000, guid: 270f3728509c540eb90893e097ecbc37, type: 3} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MetallicGlossMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _OcclusionMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _ParallaxMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | m_Floats: 58 | - _BumpScale: 1 59 | - _Cutoff: 0.5 60 | - _DetailNormalMapScale: 1 61 | - _DstBlend: 0 62 | - _GlossMapScale: 1 63 | - _Glossiness: 0.5 64 | - _GlossyReflections: 1 65 | - _Metallic: 0 66 | - _Mode: 0 67 | - _OcclusionStrength: 1 68 | - _Parallax: 0.02 69 | - _SmoothnessTextureChannel: 0 70 | - _SpecularHighlights: 1 71 | - _SrcBlend: 1 72 | - _UVSec: 0 73 | - _ZWrite: 1 74 | m_Colors: 75 | - _Color: {r: 1, g: 1, b: 1, a: 1} 76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 77 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/mesh/catMat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a5a5247df2abd478c949e386fcc0ce31 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/mesh/cat_tex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitasenjudesign/UnityComputeShaderTest/9dc0b28a4461fd8c3f55acea77cec5550211646e/UnityComputeShaderTest/Assets/03/mesh/cat_tex.png -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/mesh/cat_tex.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 270f3728509c540eb90893e097ecbc37 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/scene.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 691ae83a8e603489dbd5e3d73a7783d4 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/scene/MeshParticle 1.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8943b923e00984235bb4d98ae08cbdec 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/script.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a768b8372792d4c56bbca0f8e20c67fa 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/script/CubeMat 1.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: CubeMat 1 10 | m_Shader: {fileID: 4800000, guid: fabcb84e317c040f892f7b9495aa786b, type: 3} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 2800000, guid: 5c19e8cc6599c42b3a614d0d65ea41c3, type: 3} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MainTex2: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _MetallicGlossMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _OcclusionMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | - _ParallaxMap: 58 | m_Texture: {fileID: 0} 59 | m_Scale: {x: 1, y: 1} 60 | m_Offset: {x: 0, y: 0} 61 | m_Floats: 62 | - _Amount: 0 63 | - _BumpScale: 1 64 | - _Cutoff: 0.5 65 | - _DetailNormalMapScale: 1 66 | - _DstBlend: 0 67 | - _GlossMapScale: 1 68 | - _Glossiness: 0 69 | - _GlossyReflections: 1 70 | - _Metallic: 0 71 | - _Mode: 0 72 | - _OcclusionStrength: 1 73 | - _Parallax: 0.02 74 | - _Ratio: 0 75 | - _Size: 0.012 76 | - _SmoothnessTextureChannel: 0 77 | - _SpecularHighlights: 1 78 | - _Speed: 1 79 | - _SrcBlend: 1 80 | - _UVSec: 0 81 | - _ZWrite: 1 82 | m_Colors: 83 | - _Color: {r: 1, g: 1, b: 1, a: 1} 84 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 85 | - _Num: {r: 512, g: 512, b: 0, a: 0} 86 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/script/CubeMat 1.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d0a2a53d52b8c4bf0b0a3e3ed4e5bcb9 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/script/CubeMat 2.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: CubeMat 2 10 | m_Shader: {fileID: 4800000, guid: fabcb84e317c040f892f7b9495aa786b, type: 3} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 1 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 2800000, guid: 5c19e8cc6599c42b3a614d0d65ea41c3, type: 3} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MainTex2: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _MetallicGlossMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _OcclusionMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | - _ParallaxMap: 58 | m_Texture: {fileID: 0} 59 | m_Scale: {x: 1, y: 1} 60 | m_Offset: {x: 0, y: 0} 61 | m_Floats: 62 | - _Amount: 0 63 | - _BumpScale: 1 64 | - _Cutoff: 0.5 65 | - _DetailNormalMapScale: 1 66 | - _DstBlend: 0 67 | - _GlossMapScale: 1 68 | - _Glossiness: 0.5 69 | - _GlossyReflections: 1 70 | - _Metallic: 0 71 | - _Mode: 0 72 | - _OcclusionStrength: 1 73 | - _Parallax: 0.02 74 | - _Ratio: 0 75 | - _Size: 0.012 76 | - _SmoothnessTextureChannel: 0 77 | - _SpecularHighlights: 1 78 | - _Speed: 1 79 | - _SrcBlend: 1 80 | - _UVSec: 0 81 | - _ZWrite: 1 82 | m_Colors: 83 | - _Color: {r: 1, g: 1, b: 1, a: 1} 84 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 85 | - _Num: {r: 512, g: 512, b: 0, a: 0} 86 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/script/CubeMat 2.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a964ae429c0ba4ac48feb2b7cf3cf094 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/script/CubesCurl 1.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ce77db9f21574a6bac8657ba1ff238f 3 | timeCreated: 1538178099 4 | licenseType: Pro 5 | ComputeShaderImporter: 6 | externalObjects: {} 7 | currentAPIMask: 196608 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/script/CubesDepth 1.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fabcb84e317c040f892f7b9495aa786b 3 | timeCreated: 1538178100 4 | licenseType: Pro 5 | ShaderImporter: 6 | externalObjects: {} 7 | defaultTextures: [] 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/03/script/MeshParticle.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dbd0e27bd7d184ee4820a212f9e3d2e5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3cff731defd330f4b91be8c590f9b38c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scene.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ba3c0a5ec9d08f44ebe17156452e5c85 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scene/Missile.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 13587b5ce3539b14fb9b2eaf6df21207 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6e09604a3a5d52447aa5079f6370a1d8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/CGINC.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5b0416e529bceed4984d8fe95ff271e6 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/CGINC/BillBoardCommon.cginc: -------------------------------------------------------------------------------- 1 | // Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld' 2 | 3 | #ifndef BILLBOARD_INCLUDED 4 | #define BILLBOARD_INCLUDED 5 | 6 | float4 vPosBillboard(float4 pos, float2 uv, float size){ 7 | float4 center = pos; 8 | center.xy -= uv-0.5; 9 | half4 vPos = mul(UNITY_MATRIX_MV, center); 10 | vPos.xy += (uv-0.5)*size; 11 | return vPos; 12 | } 13 | 14 | float4 wPosOnePoleBillboard(float4 pos, float2 uv, float size){ 15 | float4 center = pos; 16 | center.xy -= uv-0.5; 17 | center = mul(unity_ObjectToWorld, center); 18 | 19 | float3 forward = normalize(_WorldSpaceCameraPos - center.xyz); 20 | float3 up = UNITY_MATRIX_V[1].xyz; 21 | float3 right = normalize(cross(forward, up)); 22 | up = normalize(cross(right, forward)); 23 | 24 | float3 wPos = center.xyz + ((uv.x-0.5) * right + (uv.y-0.5) * up)*size; 25 | return float4(wPos,1.0); 26 | } 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/CGINC/BillBoardCommon.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6e83abccfb9ebde4abcb4f235d81e647 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/CGINC/ClassicNoise2D.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e4b7ae119c1f9494a9ee7c237d6adc12 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/CGINC/ClassicNoise3D.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0d56555f268bf8847b9f2a8473f710f8 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/CGINC/ColorCollect.cginc: -------------------------------------------------------------------------------- 1 | #ifndef COLOR_COLLECT 2 | #define COLOR_COLLECT 3 | 4 | float3 rgb2hsv(float3 c) 5 | { 6 | float4 K = float4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); 7 | float4 p = lerp(float4(c.bg, K.wz), float4(c.gb, K.xy), step(c.b, c.g)); 8 | float4 q = lerp(float4(p.xyw, c.r), float4(c.r, p.yzx), step(p.x, c.r)); 9 | 10 | float d = q.x - min(q.w, q.y); 11 | float e = 1.0e-10; 12 | return float3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x); 13 | } 14 | float3 hsv2rgb(float3 c) 15 | { 16 | float4 K = float4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); 17 | float3 p = abs(frac(c.xxx + K.xyz) * 6.0 - K.www); 18 | return lerp(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y) * c.z; 19 | } 20 | 21 | //s:sourceColor, b:blendColor 22 | #define blendOverlay(s,b) (b < 0.5) ? (2.0 * s * b) : (1.0 - 2.0 * (1.0 - s) * (1.0 - b)) 23 | #define blendScreen(s,b) 1.0 - ((1.0 - s) * (1.0 - b)) 24 | 25 | #endif // COLOR_COLLECT 26 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/CGINC/ColorCollect.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e67881f1fd5850044bd91b317dc1c143 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/CGINC/CoonsCurve.cginc: -------------------------------------------------------------------------------- 1 | #ifndef COONSCURVE_INCLUDED 2 | #define COONSCURVE_INCLUDED 3 | 4 | float3 coons(float t, float3 p0, float3 p1, float3 v0, float3 v1) 5 | { 6 | float3 a = 2*p0 - 2*p1 + v0 + v1; 7 | float3 b = -3*p0 + 3*p1 - 2*v0 - v1; 8 | 9 | float t2 = t*t; 10 | float t3 = t2*t; 11 | 12 | return a*t3 + b*t2 + v0*t + p0; 13 | } 14 | 15 | float2 coons(float t, float2 p0, float2 p1, float2 v0, float2 v1) 16 | { 17 | float2 a = 2*p0 - 2*p1 + v0 + v1; 18 | float2 b = -3*p0 + 3*p1 - 2*v0 - v1; 19 | 20 | float t2 = t*t; 21 | float t3 = t2*t; 22 | 23 | return a*t3 + b*t2 + v0*t + p0; 24 | } 25 | 26 | float coons(float t, float p0, float p1, float v0, float v1) 27 | { 28 | float a = 2*p0 - 2*p1 + v0 + v1; 29 | float b = -3*p0 + 3*p1 - 2*v0 - v1; 30 | 31 | float t2 = t*t; 32 | float t3 = t2*t; 33 | 34 | return a*t3 + b*t2 + v0*t + p0; 35 | } 36 | 37 | #endif -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/CGINC/CoonsCurve.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 06837ab49cfe37b48abd8b8628b59de6 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/CGINC/NoiseMath.cginc: -------------------------------------------------------------------------------- 1 |  2 | // Ramp関数 3 | float Ramp(float r) 4 | { 5 | if (r >= 1.0) 6 | { 7 | return 1.0; 8 | } 9 | else if (r <= -1.0) 10 | { 11 | return -1.0; 12 | } 13 | else 14 | { 15 | // ((15.0 / 8.0) * r) - ((10.0 / 8.0) * (r * r * r)) + ((3.0 / 8.0) * (r * r * r * r * r)) 16 | return (1.875 * r) - (1.25 * (r * r * r)) + (0.375 * (r * r * r * r * r)); 17 | } 18 | } 19 | 20 | float Fade(float t) 21 | { 22 | return t * t * t * (t * (t * 6.0 - 15.0) + 10.0); 23 | } 24 | 25 | float Lerp(float t, float a, float b) 26 | { 27 | return a + t * (b - a); 28 | } 29 | 30 | float Grad(int hash, float x, float y, float z) 31 | { 32 | int h = hash & 15; 33 | float u = (h < 8) ? x : y; 34 | float v = (h < 4) ? y : (h == 12 || h == 14) ? x : z; 35 | return ((h & 1) == 0 ? u : -u) + ((h & 2) == 0 ? v : -v); 36 | } 37 | 38 | float Rand(float3 co) 39 | { 40 | return frac(sin(dot(co.xyz, float3(12.9898, 78.233, 56.787))) * 43758.5453); 41 | } -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/CGINC/NoiseMath.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b903fa80d78e68f4fa44c7eb6ec3e5da 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/CGINC/PostBlendCommon.cginc: -------------------------------------------------------------------------------- 1 | #ifndef POST_BLEND_INCLUDE 2 | #define POST_BLEND_INCLUDE 3 | 4 | #define WET(n) o.blendAlpha.w = n; 5 | struct pOut 6 | { 7 | half4 blendColor : SV_Target0; 8 | half4 blendAlpha : SV_Target1; 9 | half4 mull : SV_Target2; 10 | half4 add : SV_Target3; 11 | }; 12 | 13 | half blendWeight(half depth){ 14 | depth = abs(depth); 15 | return clamp(pow(depth, -4),1e-4,5e10); 16 | } 17 | half blendDepth(half depth){ 18 | depth = abs(depth); 19 | return max(0,_ProjectionParams.z - depth); 20 | } 21 | 22 | pOut alphaBlend(half4 c, half depth){ 23 | half w = blendWeight(depth); 24 | pOut o; 25 | 26 | o.blendColor = half4(c.rgb*c.a*w,c.a); 27 | o.blendAlpha = half4(c.a*w, 0, 0, 0); 28 | o.mull = 0; 29 | o.add = 0; 30 | 31 | return o; 32 | } 33 | 34 | pOut additiveBlend(half4 c){ 35 | c.rgb *= c.a; 36 | pOut o; 37 | 38 | o.blendColor = 0; 39 | o.blendAlpha = half4(0,0,0,0); 40 | o.mull = 0; 41 | o.add = half4(c.rgb,0); 42 | 43 | return o; 44 | } 45 | 46 | pOut multiplyBlend(half4 c){ 47 | c.rgb = lerp(half3(1,1,1), c.rgb, c.a); 48 | // c.rgb = saturate(c.rgb); 49 | pOut o; 50 | 51 | o.blendColor = 1; 52 | o.blendAlpha = 1; 53 | o.mull = half4(c.rgb,1); 54 | o.add = 1; 55 | 56 | return o; 57 | } 58 | 59 | pOut alphaDepth(half4 c, half depth){ 60 | c.a = saturate(c.a*5); 61 | pOut o; 62 | 63 | o.blendColor = 0; 64 | o.blendAlpha = half4(0, c.a*blendDepth(depth), 0, 0); 65 | o.mull = 0; 66 | o.add = 0; 67 | 68 | return o; 69 | } 70 | pOut multiplyDepth(half4 c, half depth){ 71 | c.rgb = lerp(half3(1,1,1), c.rgb, c.a); 72 | c.a = distance(half3(1,1,1), c.rgb); 73 | c.a = saturate(c.a*5); 74 | pOut o; 75 | 76 | o.blendColor = 0; 77 | o.blendAlpha = 0; 78 | o.mull = half4(0,0,0,c.a*blendDepth(depth)); 79 | o.add = 0; 80 | 81 | return o; 82 | } 83 | pOut additiveDepth(half4 c, half depth){ 84 | c.rgb *= c.a; 85 | c.a = distance(half3(0,0,0), c.rgb); 86 | c.a = saturate(c.a*5); 87 | pOut o; 88 | 89 | o.blendColor = 0; 90 | o.blendAlpha = 0; 91 | o.mull = 0; 92 | o.add = half4(0,0,0,c.a*blendDepth(depth)); 93 | 94 | return o; 95 | } 96 | 97 | #endif -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/CGINC/PostBlendCommon.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 607e66118ccc510418442869ec09710b 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/CGINC/Quaternion.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f55c15805219e6040b96324c7c725f69 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/CGINC/Random.cginc: -------------------------------------------------------------------------------- 1 | #ifndef RANDOM_INCLUDED 2 | #define RANDOM_INCLUDED 3 | 4 | float rand( float2 co ){ 5 | return frac(sin(dot(co.xy, float2(12.9898, 78.233))) * 43758.5453); 6 | } 7 | 8 | float3 rand3( float2 seed ){ 9 | float t = sin(seed.x + seed.y * 1e3); 10 | return float3(frac(t*1e4), frac(t*1e6), frac(t*1e5)); 11 | } 12 | 13 | #endif // RANDOM_INCLUDED 14 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/CGINC/Random.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8934cc98d80adf844a2b1d8dcdd0917c 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/CGINC/SimplexNoise2D.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: da9c649b5a79c0d4d82558d34eeac299 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/CGINC/SimplexNoise3D.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b26044e5f94799140891f771c0ed040c 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/CGINC/Transform.cginc: -------------------------------------------------------------------------------- 1 | #ifndef TRANSFORM_INCLUDED 2 | #define TRANSFORM_INCLUDED 3 | // calculating formula from 4 | // http://www.cg.info.hiroshima-cu.ac.jp/~miyazaki/knowledge/tech07.html 5 | 6 | float3x3 getRotateMatrix(float3 right, float3 up, float3 forward) { 7 | float3x3 rot = float3x3( 8 | right.x, up.x, forward.x, 9 | right.y, up.y, forward.y, 10 | right.z, up.z, forward.z 11 | ); 12 | return rot; 13 | } 14 | 15 | float3x3 getLookRotationMatrix(float3 look, float3 up) { 16 | float3 right = cross(up, look); 17 | up = cross(look, right); 18 | look = normalize(look); 19 | up = normalize(up); 20 | right = normalize(right); 21 | return getRotateMatrix(right, up, look); 22 | } 23 | 24 | float3 rotateX(float3 v, float angle) { 25 | float 26 | s = sin(angle), 27 | c = cos(angle); 28 | float3x3 rot = float3x3( 29 | 1, 0, 0, 30 | 0, c, -s, 31 | 0, s, c 32 | ); 33 | return mul(rot, v); 34 | } 35 | 36 | float3 rotateY(float3 v, float angle) { 37 | float 38 | s = sin(angle), 39 | c = cos(angle); 40 | float3x3 rot = float3x3( 41 | c, 0, s, 42 | 0, 1, 0, 43 | -s, 0, c 44 | ); 45 | return mul(rot, v); 46 | } 47 | 48 | float3 rotateZ(float3 v, float angle) { 49 | float 50 | s = sin(angle), 51 | c = cos(angle); 52 | float3x3 rot = float3x3( 53 | c, -s, 0, 54 | s, c, 0, 55 | 0, 0, 1 56 | ); 57 | return mul(rot, v); 58 | } 59 | 60 | float3 rotate(float3 v, float3 axis, float angle) { 61 | float 62 | s = sin(angle), 63 | c = cos(angle); 64 | float 65 | nx = axis.x, 66 | ny = axis.y, 67 | nz = axis.z; 68 | float3x3 rot = float3x3( 69 | nx*nx*(1 - c) + c, nx*ny*(1 - c) - nz*s, nz*nx*(1 - c) + ny*s, 70 | nx*ny*(1 - c) + nz*s, ny*ny*(1 - c) + c, ny*nz*(1 - c) - nx*s, 71 | nz*nx*(1 - c) - ny*s, ny*nz*(1 - c) + nx*s, nz*nz*(1 - c) + c 72 | ); 73 | return mul(rot, v); 74 | } 75 | #endif // TRANSFORM_INCLUDED -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/CGINC/Transform.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1f8fb0e8ed5d99a44979123de18ba7bd 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/Mover.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Runtime.InteropServices; 3 | using UnityEngine; 4 | using UnityEngine.Rendering; 5 | 6 | public class Mover : MonoBehaviour{ 7 | 8 | public Vector3 _spd; 9 | private Vector3 _startPos; 10 | private Vector3 _velocity; 11 | void Start(){ 12 | 13 | _startPos = transform.position; 14 | Reset(); 15 | } 16 | 17 | private void Reset(){ 18 | _velocity =new Vector3( 19 | 0.15f*(Random.value - 0.5f), 20 | 0.15f*(Random.value - 0.5f), 21 | 0.15f*(Random.value - 0.5f) 22 | ); 23 | 24 | transform.position = _startPos; 25 | Invoke("Reset",5f); 26 | } 27 | 28 | void Update(){ 29 | 30 | transform.position += _velocity; 31 | _velocity = _velocity - 0.001f*_velocity; 32 | _velocity += new Vector3(0,-0.0003f,0); 33 | 34 | } 35 | 36 | } -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/Mover.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f0e7c38ff98e0014cad1961f8cd73d58 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/SimplexNoise3Db.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2f54a13e8d805a0409d0d0ca1f3206bb 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/Star.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 28e51d773d454874e924b4f5630068b0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/Star.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 667e9f8cb8988d346b0abd21eaacc172 3 | timeCreated: 1538178100 4 | licenseType: Pro 5 | ShaderImporter: 6 | externalObjects: {} 7 | defaultTextures: [] 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/StarCurl.compute: -------------------------------------------------------------------------------- 1 | #pragma kernel MainCS 2 | 3 | //#include "UnityCG.cginc" 4 | #include "SimplexNoise3Db.cginc" 5 | 6 | 7 | // スレッドグループのスレッドサイズ 8 | #define ThreadBlockSize 64//256 9 | #define EPSILON 1e-3 10 | 11 | // data 12 | struct CubeData 13 | { 14 | float3 position; 15 | float3 velocity; 16 | float4 color; 17 | float3 basePos; 18 | float2 uv; 19 | float time; 20 | }; 21 | 22 | RWStructuredBuffer _CubeDataBuffer; 23 | float _Time; 24 | float _Duration; 25 | float4 _Positions[100]; 26 | float4 _Velocities[100]; 27 | 28 | float rand(float3 co) 29 | { 30 | return frac(sin(dot(co.xyz, float3(12.9898, 78.233, 45.5432))) * 43758.5453); 31 | } 32 | 33 | float3 curlNoise(float3 coord) 34 | { 35 | float3 dx = float3(EPSILON, 0.0, 0.0); 36 | float3 dy = float3(0.0, EPSILON, 0.0); 37 | float3 dz = float3(0.0, 0.0, EPSILON); 38 | 39 | float3 dpdx0 = simplexNoise(coord - dx); 40 | float3 dpdx1 = simplexNoise(coord + dx); 41 | float3 dpdy0 = simplexNoise(coord - dy); 42 | float3 dpdy1 = simplexNoise(coord + dy); 43 | float3 dpdz0 = simplexNoise(coord - dz); 44 | float3 dpdz1 = simplexNoise(coord + dz); 45 | 46 | float x = dpdy1.z - dpdy0.z + dpdz1.y - dpdz0.y; 47 | float y = dpdz1.x - dpdz0.x + dpdx1.z - dpdx0.z; 48 | float z = dpdx1.y - dpdx0.y + dpdy1.x - dpdy0.x; 49 | 50 | return float3(x, y, z) / EPSILON * 2.0; 51 | } 52 | 53 | float rand(float2 co) 54 | { 55 | return frac(sin(dot(co.xy, float2(12.9898, 78.233))) * 43758.5453); 56 | } 57 | 58 | 59 | [numthreads(ThreadBlockSize, 1, 1)] 60 | void MainCS(uint3 id : SV_DispatchThreadID) 61 | { 62 | 63 | const unsigned int index = id.x; 64 | 65 | float3 pos = _CubeDataBuffer[index].position; 66 | 67 | if( _CubeDataBuffer[index].time>_Duration){ 68 | 69 | _CubeDataBuffer[index].time=_CubeDataBuffer[index].time-_Duration; 70 | //float3 vv = _CubeDataBuffer[index].basePos.xyz; 71 | _CubeDataBuffer[index].velocity = - _Velocities[ index%100 ] * 0.02 + 0.008*float4( 72 | rand(pos.xy)-0.5, 73 | rand(pos.yz)-0.5, 74 | rand(pos.zx)-0.5, 75 | 0 76 | ); 77 | 78 | _CubeDataBuffer[index].position = _Positions[ index%100 ]; 79 | 80 | }else{ 81 | _CubeDataBuffer[index].time+=0.02; 82 | } 83 | 84 | float3 force = curlNoise(pos*7) - _CubeDataBuffer[index].velocity.xyz; 85 | 86 | _CubeDataBuffer[index].velocity += force * 0.00002; 87 | _CubeDataBuffer[index].velocity *= 0.97;//force * 0.001; 88 | _CubeDataBuffer[index].position += _CubeDataBuffer[index].velocity; 89 | 90 | } -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/StarCurl.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3d1bab0e2a2282c40bec9291bb6fadb4 3 | timeCreated: 1538178099 4 | licenseType: Pro 5 | ComputeShaderImporter: 6 | externalObjects: {} 7 | currentAPIMask: 196608 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/StarMat.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: StarMat 11 | m_Shader: {fileID: 4800000, guid: 667e9f8cb8988d346b0abd21eaacc172, type: 3} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 2800000, guid: 55e1ec7f367c84c5cbd8460ee787f97e, type: 3} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MainTex2: 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_Floats: 63 | - _Amount: 0 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 | - _Ratio: 0 76 | - _Size: 0.01 77 | - _SmoothnessTextureChannel: 0 78 | - _SpecularHighlights: 1 79 | - _Speed: 1 80 | - _SrcBlend: 1 81 | - _UVSec: 0 82 | - _ZWrite: 1 83 | m_Colors: 84 | - _Color: {r: 1, g: 1, b: 1, a: 1} 85 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 86 | - _Num: {r: 256, g: 256, b: 0, a: 0} 87 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/StarMat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8ee417b2545a1604daeeb6bff1142090 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/TrailMat.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: TrailMat 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 1, g: 1, b: 1, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04/scripts/TrailMat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e8c96540b9eff54489b460f1c8487ba5 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04_frag_billboard.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e2a40989deeb897448969c40bb1858a2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04_frag_billboard/MissileFrag.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6d998570f2e77a84db657b6fd2c593a8 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04_frag_billboard/OrbitCamera.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | 4 | namespace SpatialMessage.Area3Ema 5 | { 6 | public class OrbitCamera : MonoBehaviour { 7 | 8 | public Transform target; 9 | Vector3 f0Dir= Vector3.zero; 10 | Vector3 upVal= Vector3.zero; 11 | [SerializeField] float zoomDistance= 5; 12 | float theta= 0.0F; 13 | float fai= 0.0F; 14 | float loc_x= 0.0F; 15 | float loc_y= 0.0F; 16 | float panWeight= 0.5F; 17 | 18 | [SerializeField] private float maxDistance = 100f; 19 | [SerializeField] private float minDistance = 0; 20 | 21 | void Start(){ 22 | 23 | 24 | 25 | } 26 | 27 | void Update() { 28 | 29 | zoomDistance = Mathf.Clamp(zoomDistance - Input.GetAxis("Mouse ScrollWheel")*5, minDistance, maxDistance); 30 | 31 | 32 | if( Input.GetMouseButton(0) && !Input.GetKey("left alt" ) ) { 33 | f0Dir= new Vector3(Input.GetAxis("Mouse X")*5.0F, -Input.GetAxis("Mouse Y")*5.0F, 0); 34 | if( Input.GetKey("left alt")) { 35 | loc_x= -Input.GetAxis("Mouse X")*1; 36 | loc_y= -Input.GetAxis("Mouse Y")*1; 37 | f0Dir= Vector3.zero; 38 | } 39 | } else if( Input.GetMouseButton(1)&& Input.GetKey("left alt") ) { 40 | zoomDistance= zoomDistance+(-Input.GetAxis("Mouse X")+Input.GetAxis("Mouse Y"))*0.1F; 41 | } else if( Input.GetMouseButton(2) ) { 42 | loc_x= -Input.GetAxis("Mouse X")*panWeight; 43 | loc_y= -Input.GetAxis("Mouse Y")*panWeight; 44 | } else { 45 | f0Dir= Vector3.zero; 46 | loc_x= 0.0F; 47 | loc_y= 0.0F; 48 | } 49 | theta+= Mathf.Deg2Rad*f0Dir.x*1; 50 | fai+= -Mathf.Deg2Rad*f0Dir.y*1; 51 | 52 | upVal.z= zoomDistance*Mathf.Cos(theta)*Mathf.Sin(fai+Mathf.PI/2); 53 | upVal.x= zoomDistance*Mathf.Sin(theta)*Mathf.Sin(fai+Mathf.PI/2); 54 | upVal.y= zoomDistance*Mathf.Cos(fai+Mathf.PI/2); 55 | 56 | transform.position= upVal; 57 | target.transform.Translate( Camera.main.transform.up*loc_y+Camera.main.transform.right*(loc_x), Space.World); 58 | transform.position+= target.position; 59 | Camera.main.transform.LookAt(target.position); 60 | 61 | } 62 | } 63 | 64 | } -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04_frag_billboard/OrbitCamera.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bd5f45b841d80a44e8f2885c0fe19133 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04_frag_billboard/StarMatQuad.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: StarMatQuad 11 | m_Shader: {fileID: 4800000, guid: 37408613852658c4d88b54c652b0f4d2, type: 3} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 2800000, guid: 55e1ec7f367c84c5cbd8460ee787f97e, type: 3} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MainTex2: 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_Floats: 63 | - _Amount: 0 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 | - _Ratio: 0 76 | - _Size: 0.01 77 | - _SmoothnessTextureChannel: 0 78 | - _SpecularHighlights: 1 79 | - _Speed: 1 80 | - _SrcBlend: 1 81 | - _UVSec: 0 82 | - _ZWrite: 1 83 | m_Colors: 84 | - _Color: {r: 1, g: 1, b: 1, a: 1} 85 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 86 | - _EndColor: {r: 0, g: 1, b: 0.9270866, a: 1} 87 | - _Num: {r: 256, g: 256, b: 0, a: 0} 88 | - _StartColor: {r: 0.9876543, g: 1, b: 0, a: 1} 89 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04_frag_billboard/StarMatQuad.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 34a592f0f0217d247bcb8dfd964eb130 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04_frag_billboard/StarQuad.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 37408613852658c4d88b54c652b0f4d2 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/04_frag_billboard/dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitasenjudesign/UnityComputeShaderTest/9dc0b28a4461fd8c3f55acea77cec5550211646e/UnityComputeShaderTest/Assets/04_frag_billboard/dot.png -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/05.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: befeddb66f7c44142a0a8746f5c724d8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/05/05.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a7f992a16ed13d241a022b6b705c5700 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/05/ChargeParticle.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 857c74e1e081bb443b85405a9e6e000c 3 | ComputeShaderImporter: 4 | externalObjects: {} 5 | currentAPIMask: 4 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/05/ChargeParticle.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a64954434d275e241bb878f6e41c20d0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/05/ChargeTest.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace Kitasenju{ 6 | public class ChargeTest : MonoBehaviour 7 | { 8 | [SerializeField] private ChargeParticle particle; 9 | [SerializeField,Range(0,1f)] private float _Strength; 10 | [SerializeField] private float _Duration; 11 | //[SerializeField,Range(0,1f)] private float _Speed; 12 | 13 | // Start is called before the first frame update 14 | void Start() 15 | { 16 | 17 | } 18 | 19 | // Update is called once per frame 20 | void Update() 21 | { 22 | 23 | #if UNITY_EDITOR 24 | 25 | _Duration = 2f - 1f * _Strength; 26 | particle.Show( _Strength,_Duration ); 27 | 28 | #endif 29 | 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/05/ChargeTest.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 630a22ff62c69ea4b8ae1c27f4e71adc 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/05/Easing.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6f0e91dd3164c834aabce8bbb882d05a 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/05/New Material.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: New Material 11 | m_Shader: {fileID: 4800000, guid: f6d0f0325b37f3142ac9ebcdc2f9c4bf, type: 3} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _ColTex: 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 | - _GradeTex: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _MainTex: 51 | m_Texture: {fileID: 2800000, guid: 55e1ec7f367c84c5cbd8460ee787f97e, type: 3} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _MetallicGlossMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | - _OcclusionMap: 59 | m_Texture: {fileID: 0} 60 | m_Scale: {x: 1, y: 1} 61 | m_Offset: {x: 0, y: 0} 62 | - _ParallaxMap: 63 | m_Texture: {fileID: 0} 64 | m_Scale: {x: 1, y: 1} 65 | m_Offset: {x: 0, y: 0} 66 | m_Floats: 67 | - _BumpScale: 1 68 | - _Cutoff: 0.5 69 | - _DetailNormalMapScale: 1 70 | - _DstBlend: 0 71 | - _GlossMapScale: 1 72 | - _Glossiness: 0.5 73 | - _GlossyReflections: 1 74 | - _Metallic: 0 75 | - _Mode: 0 76 | - _OcclusionStrength: 1 77 | - _Parallax: 0.02 78 | - _Size: 1 79 | - _SmoothnessTextureChannel: 0 80 | - _SpecularHighlights: 1 81 | - _SrcBlend: 1 82 | - _UVSec: 0 83 | - _ZWrite: 1 84 | m_Colors: 85 | - _Color: {r: 1, g: 1, b: 1, a: 1} 86 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 87 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/05/New Material.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3a884df53ca9e854e9ccff27d04247bb 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/05/SimplexNoise3Db.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: be092e85711321b4db120153e36d3bf6 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/05/StarChargeQuad.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f6d0f0325b37f3142ac9ebcdc2f9c4bf 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/06_hitTest.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e53e522b1c2c84751a9bf486198a681b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/06_hitTest/06_hittest.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a56c115763480450ab6ad6c5de1c68c6 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/06_hitTest/HitTest.compute: -------------------------------------------------------------------------------- 1 | #pragma kernel MainCS 2 | 3 | #include "UnityCG.cginc" 4 | 5 | // スレッドグループのスレッドサイズ 6 | #define ThreadBlockSize 32//64//256 7 | 8 | // data 9 | struct HitTestData 10 | { 11 | float3 position; 12 | float3 velocity; 13 | int index; 14 | float time; 15 | }; 16 | 17 | RWStructuredBuffer _HitTestDataBuffer;//_DokabenDataBuffer; 18 | RWStructuredBuffer _Result;//_DokabenDataBuffer; 19 | 20 | float _Radius; 21 | float _Strength; 22 | 23 | [numthreads(ThreadBlockSize, 1, 1)] 24 | void MainCS(uint3 id : SV_DispatchThreadID) 25 | { 26 | 27 | const unsigned int index = id.x; 28 | 29 | float3 pos = _HitTestDataBuffer[index].position; 30 | HitTestData data =_HitTestDataBuffer[index]; 31 | 32 | //配列の長さを知る術がない? 33 | for(int i=0;i<1024;i++){ 34 | 35 | if(i!=index){ 36 | float3 d = data.position - _HitTestDataBuffer[i].position; 37 | 38 | float r = length(d)/_Radius; 39 | r = min(r,1); 40 | r = 1 - r; 41 | 42 | data.velocity.x += _Strength * d.x * r; 43 | data.velocity.y += _Strength * d.y * r; 44 | data.velocity.z += _Strength * d.z * r; 45 | 46 | } 47 | 48 | } 49 | 50 | data.velocity.x *= 0.9f; 51 | data.velocity.y *= 0.9f; 52 | data.velocity.z *= 0.9f; 53 | 54 | data.position += data.velocity; 55 | data.time += 0.01; 56 | 57 | _Result[index] = data.position; 58 | _HitTestDataBuffer[index]=data; 59 | 60 | 61 | } -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/06_hitTest/HitTest.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b74109f54546f4f8eae054dd42bcc462 3 | ComputeShaderImporter: 4 | externalObjects: {} 5 | currentAPIMask: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/06_hitTest/HitTestMat.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: HitTestMat 11 | m_Shader: {fileID: 4800000, guid: faa9481a5f0f44723a6691a18d190214, type: 3} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 1 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _Amount: 0 60 | - _BumpScale: 1 61 | - _Cutoff: 0.5 62 | - _DetailNormalMapScale: 1 63 | - _DstBlend: 0 64 | - _GlossMapScale: 1 65 | - _Glossiness: 0.5 66 | - _GlossyReflections: 1 67 | - _Metallic: 0 68 | - _Mode: 0 69 | - _OcclusionStrength: 1 70 | - _Parallax: 0.02 71 | - _SmoothnessTextureChannel: 0 72 | - _SpecularHighlights: 1 73 | - _SrcBlend: 1 74 | - _UVSec: 0 75 | - _ZWrite: 1 76 | m_Colors: 77 | - _Color: {r: 1, g: 1, b: 1, a: 1} 78 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 79 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/06_hitTest/HitTestMat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aa5e749eea6814057add691a189e9590 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/06_hitTest/HitTestPieceData.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.Rendering; 5 | 6 | public class HitTestPieceData { 7 | 8 | 9 | public Vector3 pos = new Vector3( 10 | 5f * ( Random.value-0.5f ), 11 | 5f * ( Random.value-0.5f ), 12 | 5f * ( Random.value-0.5f ) 13 | ); 14 | public Quaternion rot =Quaternion.Euler(0,0,0); 15 | public Vector3 scale = new Vector3(1f,1f,1f); 16 | public Vector3 velocity = new Vector3(); 17 | 18 | 19 | } -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/06_hitTest/HitTestPieceData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4cedcf9ded89647d0b0882500896b1cd 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/06_hitTest/HitTestPieceSurf.shader: -------------------------------------------------------------------------------- 1 | // Upgrade NOTE: upgraded instancing buffer 'Props' to new syntax. 2 | 3 | Shader "hitTest/HitTestPieceSurf" { 4 | Properties { 5 | _Color ("Color", Color) = (1,1,1,1) 6 | _MainTex ("Albedo (RGB)", 2D) = "white" {} 7 | _Glossiness ("Smoothness", Range(0,1)) = 0.5 8 | _Metallic ("Metallic", Range(0,1)) = 0.0 9 | _Amount ("_Amount", Range(0,5)) = 0.0 10 | } 11 | SubShader { 12 | Tags { "RenderType"="Opaque" } 13 | LOD 200 14 | 15 | CGPROGRAM 16 | // Physically based Standard lighting model, and enable shadows on all light types 17 | //#pragma surface surf Standard fullforwardshadows 18 | #pragma surface surf Standard addshadow vertex:vert 19 | 20 | // Use shader model 3.0 target, to get nicer looking lighting 21 | #pragma target 3.0 22 | 23 | sampler2D _MainTex; 24 | 25 | struct Input { 26 | float2 uv_MainTex; 27 | }; 28 | 29 | half _Glossiness; 30 | half _Metallic; 31 | //fixed4 _Color; 32 | float _Amount; 33 | 34 | UNITY_INSTANCING_BUFFER_START(Props) 35 | UNITY_DEFINE_INSTANCED_PROP(fixed4, _Color) // Make _Color an instanced property (i.e. an array) 36 | #define _Color_arr Props 37 | UNITY_INSTANCING_BUFFER_END(Props) 38 | 39 | void vert(inout appdata_full v, out Input o ) 40 | { 41 | UNITY_INITIALIZE_OUTPUT(Input, o); 42 | 43 | 44 | //インスタンス ID がシェーダー関数にアクセス可能になります。頂点シェーダーの最初に使用する必要があります 45 | UNITY_SETUP_INSTANCE_ID (v); 46 | 47 | //頂点シェーダーで入力構造体から出力構造体へインスタンス ID をコピーします。 48 | //フラグメントシェーダーでは、インスタンスごとのデータにアクセスするときのみ必要です 49 | //UNITY_TRANSFER_INSTANCE_ID (v, o); 50 | 51 | //頂点をてきとうに、ごちゃごちゃする、ここではノーマル方向に値を足してる 52 | //v.vertex.xyz += v.normal.xyz * _Amount; 53 | } 54 | 55 | void surf (Input IN, inout SurfaceOutputStandard o) { 56 | 57 | //UNITY_SETUP_INSTANCE_ID (IN); 58 | 59 | fixed4 col = UNITY_ACCESS_INSTANCED_PROP(_Color_arr, _Color); 60 | 61 | // Albedo comes from a texture tinted by color 62 | fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * col; 63 | o.Albedo = c.rgb*0.5; 64 | o.Emission = c.rgb*0.5; 65 | // Metallic and smoothness come from slider variables 66 | o.Metallic = _Metallic; 67 | o.Smoothness = _Glossiness; 68 | o.Alpha = c.a; 69 | } 70 | ENDCG 71 | } 72 | FallBack "Diffuse" 73 | } -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/06_hitTest/HitTestPieceSurf.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: faa9481a5f0f44723a6691a18d190214 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/06_hitTest/HitTestPieces.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.Rendering; 5 | 6 | public class HitTestPieces : MonoBehaviour { 7 | 8 | [SerializeField] protected Mesh _mesh; 9 | [SerializeField] protected Material _mat; 10 | [SerializeField] protected HitTestPosComputer _posComputer; 11 | protected Matrix4x4[] _matrices; 12 | protected Vector4[] _colors; 13 | protected MaterialPropertyBlock _propertyBlock; 14 | protected int _count = 400; 15 | private HitTestPieceData[] _data; 16 | public const int MAX = 1023; 17 | 18 | void Start(){ 19 | 20 | _propertyBlock = new MaterialPropertyBlock(); 21 | _matrices = new Matrix4x4[MAX]; 22 | _data = new HitTestPieceData[MAX]; 23 | _colors = new Vector4[MAX]; 24 | //_uvs = new Vector4[MAX]; 25 | 26 | _count=0; 27 | for(int i=0;i Positions; 10 | [SerializeField,Range(1,10)] private int _reduction; 11 | // Start is called before the first frame update 12 | void Awake() 13 | { 14 | Positions = new List(); 15 | 16 | if(_reduction<=0)_reduction=1; 17 | 18 | for(int i=0;i<_textTex.width;i+=_reduction){ 19 | for(int j=0;j<_textTex.height;j+=_reduction){ 20 | 21 | var col = _textTex.GetPixel(i,j); 22 | if(col.r>0.5f){ 23 | Positions.Add( 24 | new Vector2((float)i/_textTex.width-0.5f,(float)j/_textTex.height-0.5f) 25 | ); 26 | } 27 | 28 | } 29 | } 30 | 31 | } 32 | 33 | public Vector2 GetRandomPos(){ 34 | return Positions[Mathf.FloorToInt(Random.value*Positions.Count)]; 35 | } 36 | 37 | 38 | // Update is called once per frame 39 | void Update() 40 | { 41 | 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/PixelGetter.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 70618772e6e7d4a84bb0de76f0c9b729 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/hello.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitasenjudesign/UnityComputeShaderTest/9dc0b28a4461fd8c3f55acea77cec5550211646e/UnityComputeShaderTest/Assets/07_trail/hello.psd -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0cf9ae6000d924d1da35656a5db4159c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/DFVolume.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b781c6ba1f4674e6ba6c28a3cb3b5ac7 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/DFVolume/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aab843967d2cba349b396e899e4a4f3e 3 | folderAsset: yes 4 | timeCreated: 1495866268 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/DFVolume/Editor/VolumeDataEditor.cs: -------------------------------------------------------------------------------- 1 | // DFVolume - Distance field volume generator for Unity 2 | // https://github.com/keijiro/DFVolume 3 | 4 | using UnityEngine; 5 | using UnityEditor; 6 | 7 | namespace DFVolume 8 | { 9 | [CustomEditor(typeof(VolumeData))] 10 | class VolumeDataEditor : Editor 11 | { 12 | public override void OnInspectorGUI() 13 | { 14 | // There is nothing to show in the inspector. 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/DFVolume/Editor/VolumeDataEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e4bc68d473b019949ad3452e429eca70 3 | timeCreated: 1495873608 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/DFVolume/Editor/VolumeSamplerEditor.cs: -------------------------------------------------------------------------------- 1 | // DFVolume - Distance field volume generator for Unity 2 | // https://github.com/keijiro/DFVolume 3 | 4 | using UnityEngine; 5 | using UnityEditor; 6 | using System.Collections.Generic; 7 | using System.IO; 8 | using System.Linq; 9 | 10 | namespace DFVolume 11 | { 12 | [CanEditMultipleObjects] 13 | [CustomEditor(typeof(VolumeSampler))] 14 | class VolumeSamplerEditor : Editor 15 | { 16 | SerializedProperty _resolution; 17 | SerializedProperty _extent; 18 | 19 | void OnEnable() 20 | { 21 | _resolution = serializedObject.FindProperty("_resolution"); 22 | _extent = serializedObject.FindProperty("_extent"); 23 | } 24 | 25 | public override void OnInspectorGUI() 26 | { 27 | serializedObject.Update(); 28 | 29 | EditorGUILayout.PropertyField(_resolution); 30 | EditorGUILayout.PropertyField(_extent); 31 | 32 | serializedObject.ApplyModifiedProperties(); 33 | 34 | if (GUILayout.Button("Create Volume Data")) CreateVolumeData(); 35 | 36 | CheckSkewedTransform(); 37 | } 38 | 39 | void CreateVolumeData() 40 | { 41 | var output = new List(); 42 | 43 | foreach (VolumeSampler sampler in targets) 44 | { 45 | var path = "Assets/New Volume Data.asset"; 46 | path = AssetDatabase.GenerateUniqueAssetPath(path); 47 | 48 | var asset = ScriptableObject.CreateInstance(); 49 | asset.Initialize(sampler); 50 | 51 | AssetDatabase.CreateAsset(asset, path); 52 | AssetDatabase.AddObjectToAsset(asset.texture, asset); 53 | } 54 | 55 | AssetDatabase.SaveAssets(); 56 | 57 | EditorUtility.FocusProjectWindow(); 58 | Selection.objects = output.ToArray(); 59 | } 60 | 61 | void CheckSkewedTransform() 62 | { 63 | if (targets.Any(o => ((Component)o).transform.lossyScale != Vector3.one)) 64 | EditorGUILayout.HelpBox( 65 | "Using scale in transform may introduce error in output volumes.", 66 | MessageType.Warning 67 | ); 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/DFVolume/Editor/VolumeSamplerEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4672eacadf8f922469c2d31bc2c8cc98 3 | timeCreated: 1495866282 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/DFVolume/Editor/VolumeVisualizer.cs: -------------------------------------------------------------------------------- 1 | // DFVolume - Distance field volume generator for Unity 2 | // https://github.com/keijiro/DFVolume 3 | 4 | using UnityEngine; 5 | using UnityEditor; 6 | 7 | namespace DFVolume 8 | { 9 | [CanEditMultipleObjects] 10 | [CustomEditor(typeof(VolumeVisualizer))] 11 | class VolumeVisualizerEditor : Editor 12 | { 13 | SerializedProperty _data; 14 | SerializedProperty _mode; 15 | SerializedProperty _depth; 16 | 17 | void OnEnable() 18 | { 19 | _data = serializedObject.FindProperty("_data"); 20 | _mode = serializedObject.FindProperty("_mode"); 21 | _depth = serializedObject.FindProperty("_depth"); 22 | } 23 | 24 | public override void OnInspectorGUI() 25 | { 26 | serializedObject.Update(); 27 | 28 | EditorGUILayout.PropertyField(_data); 29 | EditorGUILayout.PropertyField(_mode); 30 | EditorGUILayout.PropertyField(_depth); 31 | 32 | serializedObject.ApplyModifiedProperties(); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/DFVolume/Editor/VolumeVisualizer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9e6edf4b9a972704f92c4329f66b08e5 3 | timeCreated: 1495949435 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/DFVolume/Shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f9932d3e3540d7d42967c0084417fc5c 3 | folderAsset: yes 4 | timeCreated: 1495885014 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/DFVolume/Shader/Visualizer.shader: -------------------------------------------------------------------------------- 1 | // DFVolume - Distance field volume generator for Unity 2 | // https://github.com/keijiro/DFVolume 3 | 4 | Shader "Hidden/DFVolume/Visualizer" 5 | { 6 | Properties 7 | { 8 | _MainTex("", 3D) = "white" {} 9 | } 10 | 11 | CGINCLUDE 12 | 13 | #include "UnityCG.cginc" 14 | 15 | struct appdata 16 | { 17 | float4 vertex : POSITION; 18 | float2 texcoord : TEXCOORD; 19 | }; 20 | 21 | struct v2f 22 | { 23 | float4 vertex : SV_POSITION; 24 | float2 texcoord : TEXCOORD; 25 | }; 26 | 27 | sampler3D _MainTex; 28 | float _Depth; 29 | float _Mode; 30 | 31 | v2f vert(appdata v) 32 | { 33 | v2f o; 34 | o.vertex = UnityObjectToClipPos(v.vertex); 35 | o.texcoord = v.texcoord; 36 | return o; 37 | } 38 | 39 | fixed4 frag(v2f i) : SV_Target 40 | { 41 | fixed4 data = tex3D(_MainTex, float3(i.texcoord, _Depth)); 42 | fixed dist = abs(0.5 - frac(data.a * 10)) * 2; 43 | fixed3 grad = data.rgb + 0.5; 44 | return fixed4(lerp(dist, grad, _Mode), 1); 45 | } 46 | 47 | ENDCG 48 | 49 | SubShader 50 | { 51 | Tags { "RenderType"="Opaque" } 52 | Pass 53 | { 54 | CGPROGRAM 55 | #pragma vertex vert 56 | #pragma fragment frag 57 | ENDCG 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/DFVolume/Shader/Visualizer.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e87e89fb693f01e47ac90f63e832ed83 3 | timeCreated: 1495876326 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/DFVolume/VolumeData.cs: -------------------------------------------------------------------------------- 1 | // DFVolume - Distance field volume generator for Unity 2 | // https://github.com/keijiro/DFVolume 3 | 4 | using UnityEngine; 5 | 6 | namespace DFVolume 7 | { 8 | public class VolumeData : ScriptableObject 9 | { 10 | #region Exposed attributes 11 | 12 | [SerializeField] Texture3D _texture; 13 | 14 | public Texture3D texture { 15 | get { return _texture; } 16 | } 17 | 18 | #endregion 19 | 20 | #if UNITY_EDITOR 21 | 22 | #region Editor functions 23 | 24 | public void Initialize(VolumeSampler sampler) 25 | { 26 | var dim = sampler.resolution; 27 | _texture = new Texture3D(dim, dim, dim, TextureFormat.RGBAHalf, true); 28 | 29 | _texture.name = "Distance Field Texture"; 30 | _texture.filterMode = FilterMode.Bilinear; 31 | _texture.wrapMode = TextureWrapMode.Clamp; 32 | _texture.SetPixels(sampler.GenerateBitmap()); 33 | _texture.Apply(); 34 | } 35 | 36 | #endregion 37 | 38 | #endif 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/DFVolume/VolumeData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 432ac308e27df9f4ebdfd3523b98cad3 3 | timeCreated: 1495869190 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/DFVolume/VolumeSampler.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8b8cecf65d18af24daf10718a8526e01 3 | timeCreated: 1495864966 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/DFVolume/VolumeVisualizer.cs: -------------------------------------------------------------------------------- 1 | // DFVolume - Distance field volume generator for Unity 2 | // https://github.com/keijiro/DFVolume 3 | 4 | using UnityEngine; 5 | 6 | namespace DFVolume 7 | { 8 | [ExecuteInEditMode] 9 | public class VolumeVisualizer : MonoBehaviour 10 | { 11 | enum Mode { Distance, Gradient } 12 | 13 | [SerializeField] VolumeData _data; 14 | [SerializeField] Mode _mode; 15 | [SerializeField, Range(0, 1)] float _depth = 0.5f; 16 | 17 | [SerializeField, HideInInspector] Mesh _quadMesh; 18 | [SerializeField, HideInInspector] Shader _shader; 19 | 20 | Material _material; 21 | 22 | void OnDestroy() 23 | { 24 | if (_material != null) 25 | if (Application.isPlaying) 26 | Destroy(_material); 27 | else 28 | DestroyImmediate(_material); 29 | } 30 | 31 | void Update() 32 | { 33 | if (_material == null) 34 | { 35 | _material = new Material(_shader); 36 | _material.hideFlags = HideFlags.DontSave; 37 | } 38 | 39 | _material.SetTexture("_MainTex", _data.texture); 40 | _material.SetFloat("_Depth", _depth); 41 | _material.SetFloat("_Mode", (int)_mode); 42 | 43 | Graphics.DrawMesh( 44 | _quadMesh, transform.localToWorldMatrix, 45 | _material, gameObject.layer 46 | ); 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/DFVolume/VolumeVisualizer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 86572f0349d91434d90f40861f708217 3 | timeCreated: 1495884309 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: 8 | - _data: {instanceID: 0} 9 | - _quadMesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 10 | - _shader: {fileID: 4800000, guid: e87e89fb693f01e47ac90f63e832ed83, type: 3} 11 | executionOrder: 0 12 | icon: {instanceID: 0} 13 | userData: 14 | assetBundleName: 15 | assetBundleVariant: 16 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Klak.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 83c76da8f109e49c9bf3e770f44675cf 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Klak/Chromatics.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 21bb1c344161a914d9983683a0014831 3 | folderAsset: yes 4 | timeCreated: 1485600447 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Klak/Chromatics/CosineGradient.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 54276434dda9c694e85abaf98cdd981d 3 | timeCreated: 1485582313 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Klak/Chromatics/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6316b6f1835a3e84caee37a33985d868 3 | folderAsset: yes 4 | timeCreated: 1485598578 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Klak/Chromatics/Editor/CosineGradientEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d41a30b93fdfb5c439685191d6fce80a 3 | timeCreated: 1485595451 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: 8 | - _previewShader: {fileID: 4800000, guid: ac95681b71654b04196e7be8268726c1, type: 3} 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Klak/Chromatics/Editor/Preview.shader: -------------------------------------------------------------------------------- 1 | // Preview shader for cosine gradient 2 | Shader "Hidden/Klak/Chromatics/CosineGradient/Preview" 3 | { 4 | CGINCLUDE 5 | 6 | #include "UnityCG.cginc" 7 | 8 | half3 _CoeffsA; 9 | half3 _CoeffsB; 10 | half3 _CoeffsC; 11 | half3 _CoeffsD; 12 | 13 | struct v2f 14 | { 15 | float4 vertex : SV_POSITION; 16 | float2 uv : TEXCOORD0; 17 | }; 18 | 19 | half4 frag (v2f i) : SV_Target 20 | { 21 | half t = i.uv.x; 22 | 23 | half3 rgb = saturate(_CoeffsA + _CoeffsB * cos(_CoeffsC * t + _CoeffsD)); 24 | 25 | #if !defined(UNITY_COLORSPACE_GAMMA) 26 | rgb = GammaToLinearSpace(rgb); 27 | #endif 28 | 29 | return half4(rgb, 1); 30 | } 31 | 32 | ENDCG 33 | 34 | SubShader 35 | { 36 | Pass 37 | { 38 | CGPROGRAM 39 | #pragma multi_compile __ UNITY_COLORSPACE_GAMMA 40 | #pragma vertex vert_img 41 | #pragma fragment frag 42 | #pragma target 3.0 43 | ENDCG 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Klak/Chromatics/Editor/Preview.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ac95681b71654b04196e7be8268726c1 3 | timeCreated: 1485592925 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Klak/Math.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fb9dc05a19a2fad4caf8b1a87a2c484c 3 | folderAsset: yes 4 | timeCreated: 1452843589 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Klak/Math/Perlin.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9b05ef48e04bc4e4385bbbecb990f874 3 | timeCreated: 1452487793 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Klak/Motion.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b04e253fd90e09646b7032c3100d8444 3 | folderAsset: yes 4 | timeCreated: 1452843621 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Klak/Motion/BrownianMotion.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 543ddbe12367a4899b011d43ef41f357 3 | timeCreated: 1452493080 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Klak/Motion/ConstantMotion.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3db4c4a72731246b2b1ad1e73178c04e 3 | timeCreated: 1452494131 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Klak/Motion/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5f2b8436fbb9bd045ab8bdccf8490ae1 3 | folderAsset: yes 4 | timeCreated: 1452853741 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Klak/Motion/Editor/BrownianMotionEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ff30deb1b277747ecb72302943759563 3 | timeCreated: 1452493920 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Klak/Motion/Editor/ConstantMotionEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6fc5aa7ff4bc94e60a8415d6b0755c76 3 | timeCreated: 1452496761 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2b5a9378ef41b4c62854a826d800408c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/CrawlingSwarm.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b96d22c8c7818ec49969122b320a267a 3 | timeCreated: 1496543203 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: 8 | - _template: {fileID: 11400000, guid: 2f3e96656444aa24b895cfe3b9d3cc1d, type: 2} 9 | - _volume: {fileID: 11400000, guid: a4bda0c0f0c3be142be76d77f595adbc, type: 2} 10 | - _material: {fileID: 2100000, guid: a28f050c68a3c9943ac87aeb69e40adc, type: 2} 11 | - _gradient: {fileID: 11400000, guid: 856cce886f41a1841b8637b0c897811c, type: 2} 12 | - _compute: {fileID: 7200000, guid: e579db230e141ad4baa8636ac84ed1ef, type: 3} 13 | executionOrder: 0 14 | icon: {instanceID: 0} 15 | userData: 16 | assetBundleName: 17 | assetBundleVariant: 18 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 99e173e4302b46648a90f9e63217e41e 3 | folderAsset: yes 4 | timeCreated: 1495962983 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/Editor/CrawlingSwarmEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1e0e86c7d739a604b95ed16b908733b6 3 | timeCreated: 1496157550 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/Editor/Default Swarm Gradient.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_GameObject: {fileID: 0} 9 | m_Enabled: 1 10 | m_EditorHideFlags: 0 11 | m_Script: {fileID: 11500000, guid: 54276434dda9c694e85abaf98cdd981d, type: 3} 12 | m_Name: Default Swarm Gradient 13 | m_EditorClassIdentifier: 14 | _redCoeffs: {x: 0.5, y: 0.5, z: 1, w: 0} 15 | _greenCoeffs: {x: 0.5, y: 0.5, z: 1, w: 0.333} 16 | _blueCoeffs: {x: 0.5, y: 0.5, z: 1, w: 0.665} 17 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/Editor/Default Swarm Gradient.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 856cce886f41a1841b8637b0c897811c 3 | timeCreated: 1496231267 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | mainObjectFileID: 11400000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/Editor/Default Tube Material.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Default Tube Material 10 | m_Shader: {fileID: 4800000, guid: 1b66724e3dcef3c498c92b24b8cd0fbd, type: 3} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_CustomRenderQueue: -1 15 | stringTagMap: {} 16 | disabledShaderPasses: [] 17 | m_SavedProperties: 18 | serializedVersion: 3 19 | m_TexEnvs: 20 | - _BumpMap: 21 | m_Texture: {fileID: 0} 22 | m_Scale: {x: 1, y: 1} 23 | m_Offset: {x: 0, y: 0} 24 | - _DetailAlbedoMap: 25 | m_Texture: {fileID: 0} 26 | m_Scale: {x: 1, y: 1} 27 | m_Offset: {x: 0, y: 0} 28 | - _DetailMask: 29 | m_Texture: {fileID: 0} 30 | m_Scale: {x: 1, y: 1} 31 | m_Offset: {x: 0, y: 0} 32 | - _DetailNormalMap: 33 | m_Texture: {fileID: 0} 34 | m_Scale: {x: 1, y: 1} 35 | m_Offset: {x: 0, y: 0} 36 | - _EmissionMap: 37 | m_Texture: {fileID: 0} 38 | m_Scale: {x: 1, y: 1} 39 | m_Offset: {x: 0, y: 0} 40 | - _MainTex: 41 | m_Texture: {fileID: 0} 42 | m_Scale: {x: 1, y: 1} 43 | m_Offset: {x: 0, y: 0} 44 | - _MetallicGlossMap: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - _OcclusionMap: 49 | m_Texture: {fileID: 0} 50 | m_Scale: {x: 1, y: 1} 51 | m_Offset: {x: 0, y: 0} 52 | - _ParallaxMap: 53 | m_Texture: {fileID: 0} 54 | m_Scale: {x: 1, y: 1} 55 | m_Offset: {x: 0, y: 0} 56 | m_Floats: 57 | - _BumpScale: 1 58 | - _Cutoff: 0.5 59 | - _DetailNormalMapScale: 1 60 | - _DstBlend: 0 61 | - _GlossMapScale: 1 62 | - _Glossiness: 0.5 63 | - _GlossyReflections: 1 64 | - _Metallic: 0 65 | - _Mode: 0 66 | - _OcclusionStrength: 1 67 | - _Parallax: 0.02 68 | - _Smoothness: 0 69 | - _SmoothnessTextureChannel: 0 70 | - _SpecularHighlights: 1 71 | - _SrcBlend: 1 72 | - _UVSec: 0 73 | - _ZWrite: 1 74 | m_Colors: 75 | - _Color: {r: 1, g: 1, b: 1, a: 1} 76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 77 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/Editor/Default Tube Material.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a28f050c68a3c9943ac87aeb69e40adc 3 | timeCreated: 1496240639 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | mainObjectFileID: 2100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/Editor/Default Tube Template.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2f3e96656444aa24b895cfe3b9d3cc1d 3 | timeCreated: 1496240682 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | mainObjectFileID: 11400000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/Editor/Default Volume Data.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a4bda0c0f0c3be142be76d77f595adbc 3 | timeCreated: 1496543129 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | mainObjectFileID: 11400000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/Editor/FloatingSwarmEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aafecb3059f20cb48a38ffa76a9a851b 3 | timeCreated: 1496564447 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/Editor/SwirlingSwarmEditor.cs: -------------------------------------------------------------------------------- 1 | // Swarm - Special renderer that draws a swarm of swirling/crawling lines. 2 | // https://github.com/keijiro/Swarm 3 | 4 | using UnityEngine; 5 | using UnityEditor; 6 | 7 | namespace Swarm 8 | { 9 | // Custom inspector for SwirlingSwarm 10 | [CustomEditor(typeof(SwirlingSwarm)), CanEditMultipleObjects] 11 | public class SwirlingSwarmEditor : Editor 12 | { 13 | SerializedProperty _instanceCount; 14 | SerializedProperty _template; 15 | SerializedProperty _radius; 16 | SerializedProperty _length; 17 | 18 | SerializedProperty _spread; 19 | SerializedProperty _noiseFrequency; 20 | SerializedProperty _noiseMotion; 21 | 22 | SerializedProperty _material; 23 | SerializedProperty _gradient; 24 | 25 | SerializedProperty _randomSeed; 26 | 27 | static class Labels 28 | { 29 | public static GUIContent frequency = new GUIContent("Frequency"); 30 | public static GUIContent motion = new GUIContent("Motion"); 31 | } 32 | 33 | void OnEnable() 34 | { 35 | _instanceCount = serializedObject.FindProperty("_instanceCount"); 36 | _template = serializedObject.FindProperty("_template"); 37 | _radius = serializedObject.FindProperty("_radius"); 38 | _length = serializedObject.FindProperty("_length"); 39 | 40 | _spread = serializedObject.FindProperty("_spread"); 41 | _noiseFrequency = serializedObject.FindProperty("_noiseFrequency"); 42 | _noiseMotion = serializedObject.FindProperty("_noiseMotion"); 43 | 44 | _material = serializedObject.FindProperty("_material"); 45 | _gradient = serializedObject.FindProperty("_gradient"); 46 | 47 | _randomSeed = serializedObject.FindProperty("_randomSeed"); 48 | } 49 | 50 | public override void OnInspectorGUI() 51 | { 52 | serializedObject.Update(); 53 | 54 | EditorGUILayout.PropertyField(_instanceCount); 55 | EditorGUILayout.PropertyField(_template); 56 | EditorGUI.indentLevel++; 57 | EditorGUILayout.PropertyField(_radius); 58 | EditorGUILayout.PropertyField(_length); 59 | EditorGUI.indentLevel--; 60 | 61 | EditorGUILayout.PropertyField(_spread); 62 | EditorGUILayout.LabelField("Noise Field"); 63 | EditorGUI.indentLevel++; 64 | EditorGUILayout.PropertyField(_noiseFrequency, Labels.frequency); 65 | EditorGUILayout.PropertyField(_noiseMotion, Labels.motion); 66 | EditorGUI.indentLevel--; 67 | 68 | EditorGUILayout.PropertyField(_material); 69 | EditorGUILayout.PropertyField(_gradient); 70 | 71 | EditorGUILayout.PropertyField(_randomSeed); 72 | 73 | serializedObject.ApplyModifiedProperties(); 74 | } 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/Editor/SwirlingSwarmEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 27e5c6e9e0f053343b16b50093264c73 3 | timeCreated: 1496240590 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/Editor/TubeTemplateEditor.cs: -------------------------------------------------------------------------------- 1 | // Swarm - Special renderer that draws a swarm of swirling/crawling lines. 2 | // https://github.com/keijiro/Swarm 3 | 4 | using UnityEngine; 5 | using UnityEditor; 6 | using System.IO; 7 | using System.Collections.Generic; 8 | 9 | namespace Swarm 10 | { 11 | // Custom inspector for TubeTemplate. 12 | [CustomEditor(typeof(TubeTemplate)), CanEditMultipleObjects] 13 | public sealed class TubeTemplateEditor : Editor 14 | { 15 | #region Custom inspector 16 | 17 | SerializedProperty _divisions; 18 | SerializedProperty _segments; 19 | 20 | void OnEnable() 21 | { 22 | _divisions = serializedObject.FindProperty("_divisions"); 23 | _segments = serializedObject.FindProperty("_segments"); 24 | } 25 | 26 | public override void OnInspectorGUI() 27 | { 28 | serializedObject.Update(); 29 | 30 | EditorGUI.BeginChangeCheck(); 31 | EditorGUILayout.PropertyField(_divisions); 32 | EditorGUILayout.PropertyField(_segments); 33 | var rebuild = EditorGUI.EndChangeCheck(); 34 | 35 | serializedObject.ApplyModifiedProperties(); 36 | 37 | // Rebuild the templates when there are changes on the properties. 38 | if (rebuild) foreach (TubeTemplate t in targets) t.Rebuild(); 39 | } 40 | 41 | #endregion 42 | 43 | #region Custom menu items 44 | 45 | [MenuItem("Assets/Create/Swarm/Tube Template")] 46 | static void CreteTubeTemplate() 47 | { 48 | // Determine the destination path. 49 | var path = AssetDatabase.GetAssetPath(Selection.activeObject); 50 | if (string.IsNullOrEmpty(path)) 51 | path = "Assets"; 52 | else if (Path.GetExtension(path) != "") 53 | path = path.Replace(Path.GetFileName(path), ""); 54 | path += "/New Tube Template.asset"; 55 | path = AssetDatabase.GenerateUniqueAssetPath(path); 56 | 57 | // Create a tube template asset. 58 | var asset = ScriptableObject.CreateInstance(); 59 | asset.Rebuild(); 60 | AssetDatabase.CreateAsset(asset, path); 61 | AssetDatabase.AddObjectToAsset(asset.mesh, asset); 62 | 63 | // Save the generated mesh asset. 64 | AssetDatabase.SaveAssets(); 65 | 66 | // Select the generated asset on the project view. 67 | EditorUtility.FocusProjectWindow(); 68 | Selection.activeObject = asset; 69 | } 70 | 71 | #endregion 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/Editor/TubeTemplateEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e1a8ede8a39e039499d257d33222a27f 3 | timeCreated: 1495962983 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/FloatingSwarm.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bcbd8b22430997f4abb83e3a5525138e 3 | timeCreated: 1496557942 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: 8 | - _template: {fileID: 11400000, guid: 2f3e96656444aa24b895cfe3b9d3cc1d, type: 2} 9 | - _attractor: {instanceID: 0} 10 | - _material: {fileID: 2100000, guid: a28f050c68a3c9943ac87aeb69e40adc, type: 2} 11 | - _gradient: {fileID: 11400000, guid: 856cce886f41a1841b8637b0c897811c, type: 2} 12 | - _compute: {fileID: 7200000, guid: ab946a4ad9c5b0041892c579a6c413c4, type: 3} 13 | executionOrder: 0 14 | icon: {instanceID: 0} 15 | userData: 16 | assetBundleName: 17 | assetBundleVariant: 18 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/FloatingSwarmBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6481811a2f3284826bf68774b93ed9e6 3 | timeCreated: 1600403191 4 | licenseType: Pro 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/Shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: deb3919d160972f4abcc113fe971051e 3 | folderAsset: yes 4 | timeCreated: 1495962983 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/Shader/CrawlingSwarm.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e579db230e141ad4baa8636ac84ed1ef 3 | timeCreated: 1495962986 4 | licenseType: Pro 5 | ComputeShaderImporter: 6 | currentAPIMask: 4 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/Shader/FloatingSwarm.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ab946a4ad9c5b0041892c579a6c413c4 3 | timeCreated: 1496555769 4 | licenseType: Pro 5 | ComputeShaderImporter: 6 | currentAPIMask: 4 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/Shader/SimplexNoise3D.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ba5b00154b6b7fe4c8cac80569123567 3 | timeCreated: 1495962985 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/Shader/SwirlingSwarm.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 70e8fc98ef3d1974485d153a4e66dbcc 3 | timeCreated: 1495962986 4 | licenseType: Pro 5 | ComputeShaderImporter: 6 | currentAPIMask: 4 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/Shader/Tube.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1b66724e3dcef3c498c92b24b8cd0fbd 3 | timeCreated: 1495962986 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/SwirlingSwarm.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d4a5fda7d0d9e92468f32bd6dbbf718f 3 | timeCreated: 1496240728 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: 8 | - _template: {fileID: 11400000, guid: 2f3e96656444aa24b895cfe3b9d3cc1d, type: 2} 9 | - _material: {fileID: 2100000, guid: a28f050c68a3c9943ac87aeb69e40adc, type: 2} 10 | - _gradient: {fileID: 11400000, guid: 856cce886f41a1841b8637b0c897811c, type: 2} 11 | - _compute: {fileID: 7200000, guid: 70e8fc98ef3d1974485d153a4e66dbcc, type: 3} 12 | executionOrder: 0 13 | icon: {instanceID: 0} 14 | userData: 15 | assetBundleName: 16 | assetBundleVariant: 17 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/keijiro/Swarm/TubeTemplate.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 02704278c2f9c9640826e6bb5db6aacb 3 | timeCreated: 1495962983 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/mesh.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e273fe51db01646e293222bd451860db 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/mesh/cat3.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitasenjudesign/UnityComputeShaderTest/9dc0b28a4461fd8c3f55acea77cec5550211646e/UnityComputeShaderTest/Assets/07_trail/mesh/cat3.fbx -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/mesh/cat3.fbx.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d1f0d157b4911496cbacda52d604268d 3 | ModelImporter: 4 | serializedVersion: 19300 5 | internalIDToNameTable: [] 6 | externalObjects: {} 7 | materials: 8 | materialImportMode: 1 9 | materialName: 0 10 | materialSearch: 1 11 | materialLocation: 1 12 | animations: 13 | legacyGenerateAnimations: 4 14 | bakeSimulation: 0 15 | resampleCurves: 1 16 | optimizeGameObjects: 0 17 | motionNodeName: 18 | rigImportErrors: 19 | rigImportWarnings: 20 | animationImportErrors: 21 | animationImportWarnings: 22 | animationRetargetingWarnings: 23 | animationDoRetargetingWarnings: 0 24 | importAnimatedCustomProperties: 0 25 | importConstraints: 0 26 | animationCompression: 1 27 | animationRotationError: 0.5 28 | animationPositionError: 0.5 29 | animationScaleError: 0.5 30 | animationWrapMode: 0 31 | extraExposedTransformPaths: [] 32 | extraUserProperties: [] 33 | clipAnimations: [] 34 | isReadable: 0 35 | meshes: 36 | lODScreenPercentages: [] 37 | globalScale: 1 38 | meshCompression: 0 39 | addColliders: 0 40 | useSRGBMaterialColor: 1 41 | sortHierarchyByName: 1 42 | importVisibility: 1 43 | importBlendShapes: 1 44 | importCameras: 1 45 | importLights: 1 46 | swapUVChannels: 0 47 | generateSecondaryUV: 0 48 | useFileUnits: 1 49 | keepQuads: 0 50 | weldVertices: 1 51 | preserveHierarchy: 0 52 | skinWeightsMode: 0 53 | maxBonesPerVertex: 4 54 | minBoneWeight: 0.001 55 | meshOptimizationFlags: -1 56 | indexFormat: 0 57 | secondaryUVAngleDistortion: 8 58 | secondaryUVAreaDistortion: 15.000001 59 | secondaryUVHardAngle: 88 60 | secondaryUVPackMargin: 4 61 | useFileScale: 1 62 | tangentSpace: 63 | normalSmoothAngle: 60 64 | normalImportMode: 0 65 | tangentImportMode: 3 66 | normalCalculationMode: 4 67 | legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 68 | blendShapeNormalImportMode: 1 69 | normalSmoothingSource: 0 70 | referencedClips: [] 71 | importAnimation: 1 72 | humanDescription: 73 | serializedVersion: 3 74 | human: [] 75 | skeleton: [] 76 | armTwist: 0.5 77 | foreArmTwist: 0.5 78 | upperLegTwist: 0.5 79 | legTwist: 0.5 80 | armStretch: 0.05 81 | legStretch: 0.05 82 | feetSpacing: 0 83 | globalScale: 1 84 | rootMotionBoneName: 85 | hasTranslationDoF: 0 86 | hasExtraRoot: 0 87 | skeletonHasParents: 1 88 | lastHumanDescriptionAvatarSource: {instanceID: 0} 89 | autoGenerateAvatarMappingIfUnspecified: 1 90 | animationType: 2 91 | humanoidOversampling: 1 92 | avatarSetup: 0 93 | additionalBone: 0 94 | userData: 95 | assetBundleName: 96 | assetBundleVariant: 97 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/mesh/catMat.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: catMat 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 2800000, guid: 95bc327b0706d4afd8f1cf7332b8f38c, type: 3} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.12 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 1, g: 1, b: 1, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/mesh/catMat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 41d1cad59a0184d8fa4c9023d8286e07 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/mesh/cat_tex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitasenjudesign/UnityComputeShaderTest/9dc0b28a4461fd8c3f55acea77cec5550211646e/UnityComputeShaderTest/Assets/07_trail/mesh/cat_tex.png -------------------------------------------------------------------------------- /UnityComputeShaderTest/Assets/07_trail/mesh/cat_tex.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 95bc327b0706d4afd8f1cf7332b8f38c 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | spriteSheet: 74 | serializedVersion: 2 75 | sprites: [] 76 | outline: [] 77 | physicsShape: [] 78 | bones: [] 79 | spriteID: 80 | internalID: 0 81 | vertices: [] 82 | indices: 83 | edges: [] 84 | weights: [] 85 | secondaryTextures: [] 86 | spritePackingTag: 87 | pSDRemoveMatte: 0 88 | pSDShowRemoveMatteOption: 0 89 | userData: 90 | assetBundleName: 91 | assetBundleVariant: 92 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Logs/Packages-Update.log: -------------------------------------------------------------------------------- 1 | 2 | === Tue Feb 18 18:09:34 2020 3 | 4 | Packages were changed. 5 | Update Mode: updateDependencies 6 | 7 | The following packages were added: 8 | com.unity.2d.tilemap@1.0.0 9 | com.unity.collab-proxy@1.2.16 10 | com.unity.ext.nunit@1.0.0 11 | com.unity.test-framework@1.0.13 12 | com.unity.timeline@1.1.0 13 | com.unity.2d.sprite@1.0.0 14 | com.unity.ide.vscode@1.1.3 15 | com.unity.ide.rider@1.1.0 16 | com.unity.ugui@1.0.0 17 | com.unity.modules.androidjni@1.0.0 18 | com.unity.multiplayer-hlapi@1.0.2 19 | com.unity.xr.legacyinputhelpers@2.0.2 20 | The following packages were updated: 21 | com.unity.analytics from version 2.0.16 to 3.3.2 22 | com.unity.package-manager-ui from version 1.9.11 to 2.2.0 23 | com.unity.purchasing from version 2.0.3 to 2.0.6 24 | com.unity.textmeshpro from version 1.2.4 to 2.0.1 25 | 26 | === Tue Jun 30 10:43:35 2020 27 | 28 | Packages were changed. 29 | Update Mode: updateDependencies 30 | 31 | The following packages were updated: 32 | com.unity.analytics from version 3.3.2 to 3.3.5 33 | com.unity.ide.rider from version 1.1.0 to 1.1.4 34 | com.unity.ide.vscode from version 1.1.3 to 1.1.4 35 | com.unity.multiplayer-hlapi from version 1.0.2 to 1.0.4 36 | com.unity.test-framework from version 1.0.13 to 1.1.11 37 | com.unity.timeline from version 1.1.0 to 1.2.6 38 | The following packages were removed: 39 | com.unity.package-manager-ui@2.2.0 40 | 41 | === Thu Sep 24 12:42:46 2020 42 | 43 | Packages were changed. 44 | Update Mode: updateDependencies 45 | 46 | The following packages were added: 47 | com.unity.ide.visualstudio@2.0.2 48 | The following packages were updated: 49 | com.unity.ads from version 2.0.8 to 3.4.9 50 | com.unity.collab-proxy from version 1.2.16 to 1.3.9 51 | com.unity.ide.rider from version 1.1.4 to 1.2.1 52 | com.unity.ide.vscode from version 1.1.4 to 1.2.1 53 | com.unity.purchasing from version 2.0.6 to 2.1.0 54 | com.unity.test-framework from version 1.1.11 to 1.1.16 55 | com.unity.textmeshpro from version 2.0.1 to 3.0.1 56 | com.unity.xr.legacyinputhelpers from version 2.0.2 to 2.1.4 57 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.2d.sprite": "1.0.0", 4 | "com.unity.2d.tilemap": "1.0.0", 5 | "com.unity.ads": "3.4.9", 6 | "com.unity.analytics": "3.3.5", 7 | "com.unity.collab-proxy": "1.3.9", 8 | "com.unity.ext.nunit": "1.0.0", 9 | "com.unity.ide.rider": "1.2.1", 10 | "com.unity.ide.visualstudio": "2.0.2", 11 | "com.unity.ide.vscode": "1.2.1", 12 | "com.unity.multiplayer-hlapi": "1.0.6", 13 | "com.unity.purchasing": "2.1.0", 14 | "com.unity.test-framework": "1.1.16", 15 | "com.unity.textmeshpro": "3.0.1", 16 | "com.unity.timeline": "1.2.6", 17 | "com.unity.ugui": "1.0.0", 18 | "com.unity.xr.legacyinputhelpers": "2.1.4", 19 | "com.unity.modules.ai": "1.0.0", 20 | "com.unity.modules.androidjni": "1.0.0", 21 | "com.unity.modules.animation": "1.0.0", 22 | "com.unity.modules.assetbundle": "1.0.0", 23 | "com.unity.modules.audio": "1.0.0", 24 | "com.unity.modules.cloth": "1.0.0", 25 | "com.unity.modules.director": "1.0.0", 26 | "com.unity.modules.imageconversion": "1.0.0", 27 | "com.unity.modules.imgui": "1.0.0", 28 | "com.unity.modules.jsonserialize": "1.0.0", 29 | "com.unity.modules.particlesystem": "1.0.0", 30 | "com.unity.modules.physics": "1.0.0", 31 | "com.unity.modules.physics2d": "1.0.0", 32 | "com.unity.modules.screencapture": "1.0.0", 33 | "com.unity.modules.terrain": "1.0.0", 34 | "com.unity.modules.terrainphysics": "1.0.0", 35 | "com.unity.modules.tilemap": "1.0.0", 36 | "com.unity.modules.ui": "1.0.0", 37 | "com.unity.modules.uielements": "1.0.0", 38 | "com.unity.modules.umbra": "1.0.0", 39 | "com.unity.modules.unityanalytics": "1.0.0", 40 | "com.unity.modules.unitywebrequest": "1.0.0", 41 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 42 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 43 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 44 | "com.unity.modules.unitywebrequestwww": "1.0.0", 45 | "com.unity.modules.vehicles": "1.0.0", 46 | "com.unity.modules.video": "1.0.0", 47 | "com.unity.modules.vr": "1.0.0", 48 | "com.unity.modules.wind": "1.0.0", 49 | "com.unity.modules.xr": "1.0.0" 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 0 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_EnablePCM: 1 18 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 19 | m_AutoSimulation: 1 20 | m_AutoSyncTransforms: 1 21 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: [] 8 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 9 7 | m_ExternalVersionControlSupport: Hidden Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 1 10 | m_DefaultBehaviorMode: 0 11 | m_PrefabRegularEnvironment: {fileID: 0} 12 | m_PrefabUIEnvironment: {fileID: 0} 13 | m_SpritePackerMode: 0 14 | m_SpritePackerPaddingPower: 1 15 | m_EtcTextureCompressorBehavior: 1 16 | m_EtcTextureFastCompressor: 1 17 | m_EtcTextureNormalCompressor: 2 18 | m_EtcTextureBestCompressor: 4 19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmref 20 | m_ProjectGenerationRootNamespace: 21 | m_CollabEditorSettings: 22 | inProgressEnabled: 1 23 | m_EnableTextureStreamingInEditMode: 1 24 | m_EnableTextureStreamingInPlayMode: 1 25 | m_AsyncShaderCompilation: 1 26 | m_EnterPlayModeOptionsEnabled: 0 27 | m_EnterPlayModeOptions: 3 28 | m_ShowLightmapResolutionOverlay: 1 29 | m_UseLegacyProbeSampleCount: 1 30 | m_AssetPipelineMode: 1 31 | m_CacheServerMode: 0 32 | m_CacheServerEndpoint: 33 | m_CacheServerNamespacePrefix: default 34 | m_CacheServerEnableDownload: 1 35 | m_CacheServerEnableUpload: 1 36 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 12 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 38 | m_PreloadedShaders: [] 39 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 40 | type: 0} 41 | m_CustomRenderPipeline: {fileID: 0} 42 | m_TransparencySortMode: 0 43 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 44 | m_DefaultRenderingPath: 1 45 | m_DefaultMobileRenderingPath: 1 46 | m_TierSettings: [] 47 | m_LightmapStripping: 0 48 | m_FogStripping: 0 49 | m_InstancingStripping: 0 50 | m_LightmapKeepPlain: 1 51 | m_LightmapKeepDirCombined: 1 52 | m_LightmapKeepDynamicPlain: 1 53 | m_LightmapKeepDynamicDirCombined: 1 54 | m_LightmapKeepShadowMask: 1 55 | m_LightmapKeepSubtractive: 1 56 | m_FogKeepLinear: 1 57 | m_FogKeepExp: 1 58 | m_FogKeepExp2: 1 59 | m_AlbedoSwatchInfos: [] 60 | m_LightsUseLinearIntensity: 0 61 | m_LightsUseColorTemperature: 0 62 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/ProjectSettings/PackageManagerSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_EnablePreviewPackages: 0 16 | m_EnablePackageDependencies: 0 17 | m_AdvancedSettingsExpanded: 1 18 | m_ScopedRegistriesSettingsExpanded: 1 19 | oneTimeWarningShown: 0 20 | m_Registries: 21 | - m_Id: main 22 | m_Name: 23 | m_Url: https://packages.unity.com 24 | m_Scopes: [] 25 | m_IsDefault: 1 26 | m_Capabilities: 7 27 | m_UserSelectedRegistryName: 28 | m_UserAddingNewScopedRegistry: 0 29 | m_RegistryInfoDraft: 30 | m_ErrorMessage: 31 | m_Original: 32 | m_Id: 33 | m_Name: 34 | m_Url: 35 | m_Scopes: [] 36 | m_IsDefault: 0 37 | m_Capabilities: 0 38 | m_Modified: 0 39 | m_Name: 40 | m_Url: 41 | m_Scopes: 42 | - 43 | m_SelectedScopeIndex: 0 44 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_AutoSimulation: 1 23 | m_QueriesHitTriggers: 1 24 | m_QueriesStartInColliders: 1 25 | m_ChangeStopsCallbacks: 0 26 | m_CallbacksOnDisable: 1 27 | m_AutoSyncTransforms: 1 28 | m_AlwaysShowColliders: 0 29 | m_ShowColliderSleep: 1 30 | m_ShowColliderContacts: 0 31 | m_ShowColliderAABB: 0 32 | m_ContactArrowScale: 0.2 33 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 34 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 35 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 36 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 37 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 38 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | m_DefaultList: [] 7 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2020.1.6f1 2 | m_EditorVersionWithRevision: 2020.1.6f1 (fc477ca6df10) 3 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | m_Enabled: 0 7 | m_TestMode: 0 8 | m_TestEventUrl: 9 | m_TestConfigUrl: 10 | m_TestInitMode: 0 11 | CrashReportingSettings: 12 | m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes 13 | m_NativeEventUrl: https://perf-events.cloud.unity3d.com/symbolicate 14 | m_Enabled: 0 15 | m_CaptureEditorExceptions: 1 16 | UnityPurchasingSettings: 17 | m_Enabled: 0 18 | m_TestMode: 0 19 | UnityAnalyticsSettings: 20 | m_Enabled: 0 21 | m_InitializeOnStartup: 1 22 | m_TestMode: 0 23 | m_TestEventUrl: 24 | m_TestConfigUrl: 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_RenderPipeSettingsPath: 10 | m_FixedTimeStep: 0.016666668 11 | m_MaxDeltaTime: 0.05 12 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/ProjectSettings/VersionControlSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!890905787 &1 4 | VersionControlSettings: 5 | m_ObjectHideFlags: 0 6 | m_Mode: Visible Meta Files 7 | m_CollabEditorSettings: 8 | inProgressEnabled: 1 9 | -------------------------------------------------------------------------------- /UnityComputeShaderTest/ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /UnityComputeShaderTest/UserSettings/EditorUserSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!162 &1 4 | EditorUserSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_ConfigSettings: 8 | vcSharedLogLevel: 9 | value: 0d5e400f0650 10 | flags: 0 11 | m_VCAutomaticAdd: 1 12 | m_VCDebugCom: 0 13 | m_VCDebugCmd: 0 14 | m_VCDebugOut: 0 15 | m_SemanticMergeMode: 2 16 | m_VCShowFailedCheckout: 1 17 | m_VCOverwriteFailedCheckoutAssets: 1 18 | m_VCOverlayIcons: 1 19 | m_VCAllowAsyncUpdate: 0 20 | -------------------------------------------------------------------------------- /img/compute.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitasenjudesign/UnityComputeShaderTest/9dc0b28a4461fd8c3f55acea77cec5550211646e/img/compute.gif -------------------------------------------------------------------------------- /img/img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kitasenjudesign/UnityComputeShaderTest/9dc0b28a4461fd8c3f55acea77cec5550211646e/img/img.png --------------------------------------------------------------------------------