├── .gitignore ├── C++ ├── svm-detector.cpp └── svm-out.xml ├── Images ├── Bake.png ├── ChangeNum.png ├── Folders.png ├── Preview.gif ├── Project.png ├── Replace.png ├── SVM.png └── SVTotal.png ├── LICENSE ├── README.md └── Unity ├── Assets ├── SVM Detector.meta ├── SVM Detector │ ├── Animations.meta │ ├── Animations │ │ ├── CamOn.anim │ │ ├── CamOn.anim.meta │ │ ├── SVM CamOn.controller │ │ └── SVM CamOn.controller.meta │ ├── Editor.meta │ ├── Editor │ │ ├── BakeSV.cs │ │ └── BakeSV.cs.meta │ ├── Materials.meta │ ├── Materials │ │ ├── buffer.mat │ │ ├── buffer.mat.meta │ │ ├── color1.mat │ │ ├── color1.mat.meta │ │ ├── color2.mat │ │ ├── color2.mat.meta │ │ ├── debug.mat │ │ ├── debug.mat.meta │ │ ├── output.mat │ │ ├── output.mat.meta │ │ ├── presentation.mat │ │ ├── presentation.mat.meta │ │ ├── svm.mat │ │ ├── svm.mat.meta │ │ ├── test.mat │ │ ├── test.mat.meta │ │ ├── visual.mat │ │ └── visual.mat.meta │ ├── Prefab.meta │ ├── Prefab │ │ ├── SVMDetectorPrefab.prefab │ │ └── SVMDetectorPrefab.prefab.meta │ ├── Scene.meta │ ├── Scene │ │ ├── SVM Scene.meta │ │ ├── SVM Scene.unity │ │ ├── SVM Scene.unity.meta │ │ └── SVM Scene │ │ │ ├── LightingData.asset │ │ │ ├── LightingData.asset.meta │ │ │ ├── Lightmap-0_comp_dir.png │ │ │ ├── Lightmap-0_comp_dir.png.meta │ │ │ ├── Lightmap-0_comp_light.exr │ │ │ ├── Lightmap-0_comp_light.exr.meta │ │ │ ├── ReflectionProbe-0.exr │ │ │ └── ReflectionProbe-0.exr.meta │ ├── Shaders.meta │ ├── Shaders │ │ ├── buffer.shader │ │ ├── buffer.shader.meta │ │ ├── debug.shader │ │ ├── debug.shader.meta │ │ ├── output.shader │ │ ├── output.shader.meta │ │ ├── svm.shader │ │ ├── svm.shader.meta │ │ ├── svmhelper.cginc │ │ ├── svmhelper.cginc.meta │ │ ├── visual.shader │ │ └── visual.shader.meta │ ├── SupportVectors.asset │ ├── SupportVectors.asset.meta │ ├── Test.meta │ ├── Test │ │ ├── VRChat_3840x2160_2020-04-06_00-56-58.220.png │ │ ├── VRChat_3840x2160_2020-04-06_00-56-58.220.png.meta │ │ ├── bush.bmp │ │ ├── bush.bmp.meta │ │ ├── p1.jpg │ │ ├── p1.jpg.meta │ │ ├── uv.bmp │ │ └── uv.bmp.meta │ ├── Textures.meta │ ├── Textures │ │ ├── CameraHigh.renderTexture │ │ ├── CameraHigh.renderTexture.meta │ │ ├── CameraLow.renderTexture │ │ ├── CameraLow.renderTexture.meta │ │ ├── Hats.meta │ │ ├── Hats │ │ │ ├── hats.png │ │ │ └── hats.png.meta │ │ ├── presentation.png │ │ ├── presentation.png.meta │ │ ├── svm buffer.renderTexture │ │ ├── svm buffer.renderTexture.meta │ │ ├── svm out.renderTexture │ │ └── svm out.renderTexture.meta │ ├── svm-out.xml │ └── svm-out.xml.meta ├── SaveRenderTextureToFile.cs ├── SaveRenderTextureToFile.cs.meta ├── ShaderDebugging.cs └── ShaderDebugging.cs.meta └── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset └── VFXManager.asset /.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | Extra/backup 3 | Skinner.unitypackage 4 | 5 | [Ll]ibrary/ 6 | [Tt]emp/ 7 | [Oo]bj/ 8 | [Bb]uild/ 9 | [Bb]uilds/ 10 | Unity/Assets/PostProcess* 11 | Unity/Assets/AssetStoreTools* 12 | Unity/Assets/VRCSDK* 13 | Unity/Assets/Plugins/VRCSDK* 14 | Unity/Assets/VRChat* 15 | Unity/Assets/VRChat Examples* 16 | 17 | # Autogenerated VS/MD solution and project files 18 | ExportedObj/ 19 | *.csproj 20 | *.unityproj 21 | *.sln 22 | *.suo 23 | *.tmp 24 | *.user 25 | *.userprefs 26 | *.pidb 27 | *.booproj 28 | *.svd 29 | *.vcxproj* 30 | 31 | 32 | # Unity3D generated meta files 33 | *.pidb.meta 34 | 35 | # Unity3D Generated File On Crash Reports 36 | sysinfo.txt 37 | 38 | # Paint.NET 39 | *.pdn 40 | *.pdn.meta 41 | 42 | # ========================= 43 | # Operating System Files 44 | # ========================= 45 | 46 | # OSX 47 | # ========================= 48 | 49 | .DS_Store 50 | .AppleDouble 51 | .LSOverride 52 | 53 | # Thumbnails 54 | ._* 55 | 56 | # Files that might appear in the root of a volume 57 | .DocumentRevisions-V100 58 | .fseventsd 59 | .Spotlight-V100 60 | .TemporaryItems 61 | .Trashes 62 | .VolumeIcon.icns 63 | 64 | # Directories potentially created on remote AFP share 65 | .AppleDB 66 | .AppleDesktop 67 | Network Trash Folder 68 | Temporary Items 69 | .apdisk 70 | 71 | # Windows 72 | # ========================= 73 | 74 | # Windows image file caches 75 | Thumbs.db 76 | ehthumbs.db 77 | 78 | # Folder config file 79 | Desktop.ini 80 | 81 | # Recycle Bin used on file shares 82 | $RECYCLE.BIN/ 83 | 84 | # Windows Installer files 85 | *.cab 86 | *.msi 87 | *.msm 88 | *.msp 89 | 90 | # Windows shortcuts 91 | *.lnk 92 | 93 | # Prerequisites 94 | *.d 95 | 96 | # Compiled Object files 97 | *.slo 98 | *.lo 99 | *.o 100 | *.obj 101 | 102 | # Precompiled Headers 103 | *.gch 104 | *.pch 105 | 106 | # Compiled Dynamic libraries 107 | *.so 108 | *.dylib 109 | *.dll 110 | 111 | # Fortran module files 112 | *.mod 113 | *.smod 114 | 115 | # Compiled Static libraries 116 | *.lai 117 | *.la 118 | *.a 119 | *.lib 120 | 121 | # Executables 122 | *.exe 123 | *.out 124 | *.app 125 | ## Ignore Visual Studio temporary files, build results, and 126 | ## files generated by popular Visual Studio add-ons. 127 | ## 128 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 129 | 130 | # User-specific files 131 | *.rsuser 132 | *.suo 133 | *.user 134 | *.userosscache 135 | *.sln.docstates 136 | 137 | # User-specific files (MonoDevelop/Xamarin Studio) 138 | *.userprefs 139 | 140 | # Mono auto generated files 141 | mono_crash.* 142 | 143 | # Build results 144 | [Dd]ebug/ 145 | [Dd]ebugPublic/ 146 | [Rr]elease/ 147 | [Rr]eleases/ 148 | x64/ 149 | x86/ 150 | [Ww][Ii][Nn]32/ 151 | [Aa][Rr][Mm]/ 152 | [Aa][Rr][Mm]64/ 153 | bld/ 154 | [Bb]in/ 155 | [Oo]bj/ 156 | [Ll]og/ 157 | [Ll]ogs/ 158 | 159 | # Visual Studio 2015/2017 cache/options directory 160 | .vs/ 161 | # Uncomment if you have tasks that create the project's static files in wwwroot 162 | #wwwroot/ 163 | 164 | # Visual Studio 2017 auto generated files 165 | Generated\ Files/ 166 | 167 | # MSTest test Results 168 | [Tt]est[Rr]esult*/ 169 | [Bb]uild[Ll]og.* 170 | 171 | # NUnit 172 | *.VisualState.xml 173 | TestResult.xml 174 | nunit-*.xml 175 | 176 | # Build Results of an ATL Project 177 | [Dd]ebugPS/ 178 | [Rr]eleasePS/ 179 | dlldata.c 180 | 181 | # Benchmark Results 182 | BenchmarkDotNet.Artifacts/ 183 | 184 | # .NET Core 185 | project.lock.json 186 | project.fragment.lock.json 187 | artifacts/ 188 | 189 | # ASP.NET Scaffolding 190 | ScaffoldingReadMe.txt 191 | 192 | # StyleCop 193 | StyleCopReport.xml 194 | 195 | # Files built by Visual Studio 196 | *_i.c 197 | *_p.c 198 | *_h.h 199 | *.obj 200 | *.iobj 201 | *.pch 202 | *.pdb 203 | *.ipdb 204 | *.pgc 205 | *.pgd 206 | *.rsp 207 | *.sbr 208 | *.tlb 209 | *.tli 210 | *.tlh 211 | *.tmp 212 | *.tmp_proj 213 | *_wpftmp.csproj 214 | *.log 215 | *.vspscc 216 | *.vssscc 217 | .builds 218 | *.pidb 219 | *.svclog 220 | *.scc 221 | 222 | # Chutzpah Test files 223 | _Chutzpah* 224 | 225 | # Visual C++ cache files 226 | ipch/ 227 | *.aps 228 | *.ncb 229 | *.opendb 230 | *.opensdf 231 | *.sdf 232 | *.cachefile 233 | *.VC.db 234 | *.VC.VC.opendb 235 | 236 | # Visual Studio profiler 237 | *.psess 238 | *.vsp 239 | *.vspx 240 | *.sap 241 | 242 | # Visual Studio Trace Files 243 | *.e2e 244 | 245 | # TFS 2012 Local Workspace 246 | $tf/ 247 | 248 | # Guidance Automation Toolkit 249 | *.gpState 250 | 251 | # ReSharper is a .NET coding add-in 252 | _ReSharper*/ 253 | *.[Rr]e[Ss]harper 254 | *.DotSettings.user 255 | 256 | # TeamCity is a build add-in 257 | _TeamCity* 258 | 259 | # DotCover is a Code Coverage Tool 260 | *.dotCover 261 | 262 | # AxoCover is a Code Coverage Tool 263 | .axoCover/* 264 | !.axoCover/settings.json 265 | 266 | # Coverlet is a free, cross platform Code Coverage Tool 267 | coverage*.json 268 | coverage*.xml 269 | coverage*.info 270 | 271 | # Visual Studio code coverage results 272 | *.coverage 273 | *.coveragexml 274 | 275 | # NCrunch 276 | _NCrunch_* 277 | .*crunch*.local.xml 278 | nCrunchTemp_* 279 | 280 | # MightyMoose 281 | *.mm.* 282 | AutoTest.Net/ 283 | 284 | # Web workbench (sass) 285 | .sass-cache/ 286 | 287 | # Installshield output folder 288 | [Ee]xpress/ 289 | 290 | # DocProject is a documentation generator add-in 291 | DocProject/buildhelp/ 292 | DocProject/Help/*.HxT 293 | DocProject/Help/*.HxC 294 | DocProject/Help/*.hhc 295 | DocProject/Help/*.hhk 296 | DocProject/Help/*.hhp 297 | DocProject/Help/Html2 298 | DocProject/Help/html 299 | 300 | # Click-Once directory 301 | publish/ 302 | 303 | # Publish Web Output 304 | *.[Pp]ublish.xml 305 | *.azurePubxml 306 | # Note: Comment the next line if you want to checkin your web deploy settings, 307 | # but database connection strings (with potential passwords) will be unencrypted 308 | *.pubxml 309 | *.publishproj 310 | 311 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 312 | # checkin your Azure Web App publish settings, but sensitive information contained 313 | # in these scripts will be unencrypted 314 | PublishScripts/ 315 | 316 | # NuGet Packages 317 | *.nupkg 318 | # NuGet Symbol Packages 319 | *.snupkg 320 | # The packages folder can be ignored because of Package Restore 321 | **/[Pp]ackages/* 322 | # except build/, which is used as an MSBuild target. 323 | !**/[Pp]ackages/build/ 324 | # Uncomment if necessary however generally it will be regenerated when needed 325 | #!**/[Pp]ackages/repositories.config 326 | # NuGet v3's project.json files produces more ignorable files 327 | *.nuget.props 328 | *.nuget.targets 329 | 330 | # Microsoft Azure Build Output 331 | csx/ 332 | *.build.csdef 333 | 334 | # Microsoft Azure Emulator 335 | ecf/ 336 | rcf/ 337 | 338 | # Windows Store app package directories and files 339 | AppPackages/ 340 | BundleArtifacts/ 341 | Package.StoreAssociation.xml 342 | _pkginfo.txt 343 | *.appx 344 | *.appxbundle 345 | *.appxupload 346 | 347 | # Visual Studio cache files 348 | # files ending in .cache can be ignored 349 | *.[Cc]ache 350 | # but keep track of directories ending in .cache 351 | !?*.[Cc]ache/ 352 | 353 | # Others 354 | ClientBin/ 355 | ~$* 356 | *~ 357 | *.dbmdl 358 | *.dbproj.schemaview 359 | *.jfm 360 | *.pfx 361 | *.publishsettings 362 | orleans.codegen.cs 363 | 364 | # Including strong name files can present a security risk 365 | # (https://github.com/github/gitignore/pull/2483#issue-259490424) 366 | #*.snk 367 | 368 | # Since there are multiple workflows, uncomment next line to ignore bower_components 369 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 370 | #bower_components/ 371 | 372 | # RIA/Silverlight projects 373 | Generated_Code/ 374 | 375 | # Backup & report files from converting an old project file 376 | # to a newer Visual Studio version. Backup files are not needed, 377 | # because we have git ;-) 378 | _UpgradeReport_Files/ 379 | Backup*/ 380 | UpgradeLog*.XML 381 | UpgradeLog*.htm 382 | ServiceFabricBackup/ 383 | *.rptproj.bak 384 | 385 | # SQL Server files 386 | *.mdf 387 | *.ldf 388 | *.ndf 389 | 390 | # Business Intelligence projects 391 | *.rdl.data 392 | *.bim.layout 393 | *.bim_*.settings 394 | *.rptproj.rsuser 395 | *- [Bb]ackup.rdl 396 | *- [Bb]ackup ([0-9]).rdl 397 | *- [Bb]ackup ([0-9][0-9]).rdl 398 | 399 | # Microsoft Fakes 400 | FakesAssemblies/ 401 | 402 | # GhostDoc plugin setting file 403 | *.GhostDoc.xml 404 | 405 | # Node.js Tools for Visual Studio 406 | .ntvs_analysis.dat 407 | node_modules/ 408 | 409 | # Visual Studio 6 build log 410 | *.plg 411 | 412 | # Visual Studio 6 workspace options file 413 | *.opt 414 | 415 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 416 | *.vbw 417 | 418 | # Visual Studio LightSwitch build output 419 | **/*.HTMLClient/GeneratedArtifacts 420 | **/*.DesktopClient/GeneratedArtifacts 421 | **/*.DesktopClient/ModelManifest.xml 422 | **/*.Server/GeneratedArtifacts 423 | **/*.Server/ModelManifest.xml 424 | _Pvt_Extensions 425 | 426 | # Paket dependency manager 427 | .paket/paket.exe 428 | paket-files/ 429 | 430 | # FAKE - F# Make 431 | .fake/ 432 | 433 | # CodeRush personal settings 434 | .cr/personal 435 | 436 | # Python Tools for Visual Studio (PTVS) 437 | __pycache__/ 438 | *.pyc 439 | 440 | # Cake - Uncomment if you are using it 441 | # tools/** 442 | # !tools/packages.config 443 | 444 | # Tabs Studio 445 | *.tss 446 | 447 | # Telerik's JustMock configuration file 448 | *.jmconfig 449 | 450 | # BizTalk build output 451 | *.btp.cs 452 | *.btm.cs 453 | *.odx.cs 454 | *.xsd.cs 455 | 456 | # OpenCover UI analysis results 457 | OpenCover/ 458 | 459 | # Azure Stream Analytics local run output 460 | ASALocalRun/ 461 | 462 | # MSBuild Binary and Structured Log 463 | *.binlog 464 | 465 | # NVidia Nsight GPU debugger configuration file 466 | *.nvuser 467 | 468 | # MFractors (Xamarin productivity tool) working folder 469 | .mfractor/ 470 | 471 | # Local History for Visual Studio 472 | .localhistory/ 473 | 474 | # BeatPulse healthcheck temp database 475 | healthchecksdb 476 | 477 | # Backup folder for Package Reference Convert tool in Visual Studio 2017 478 | MigrationBackup/ 479 | 480 | # Ionide (cross platform F# VS Code tools) working folder 481 | .ionide/ 482 | 483 | # Fody - auto-generated XML schema 484 | FodyWeavers.xsd 485 | 486 | # Other 487 | *.npz 488 | *.h5 -------------------------------------------------------------------------------- /C++/svm-detector.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | The purpose of this file was to help me implement SVM functions in Cg 3 | fragment shaders by coding based on how data will be passed around in the 4 | render textures. Proof of concept only, will optimize in the future. 5 | 6 | https://www.learnopencv.com/histogram-of-oriented-gradients/ 7 | */ 8 | 9 | 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | #include 17 | #include 18 | #include 19 | #include 20 | 21 | using namespace std; 22 | using namespace cv; 23 | using namespace cv::ml; 24 | 25 | const float PI_F = 3.14159265358979f; 26 | 27 | const float fX[3][3] = { 28 | {-1, 0, 1}, 29 | {-2, 0, 2}, 30 | {-1, 0, 1} 31 | }; 32 | 33 | const float fY[3][3] = { 34 | {-1, -2, -1}, 35 | { 0, 0, 0}, 36 | { 1, 2, 1} 37 | }; 38 | 39 | inline int clip(int n, int lower, int upper) { 40 | return max(lower, min(n, upper)); 41 | } 42 | 43 | void** createArray(int i, int j, size_t size) 44 | { 45 | void** r = (void**)calloc(i, sizeof(void*)); 46 | for (int x = 0; x < i; x++) { 47 | r[x] = (void*)calloc(j, size); 48 | } 49 | return r; 50 | } 51 | 52 | float test(uint x, uint y, uint z, uint maxNum) 53 | { 54 | float r; 55 | if (z == 0) 56 | r = (x / 64.0f) * (y / 64.0f) * 2.0f - 1.0f; 57 | else if (z == 1) 58 | r = ((64.0f - x) / 64.0f) * (y / 64.0f) * 2.0f - 1.0f; 59 | else 60 | r = (x / 64.0f) * ((64.0f - y) / 64.0f) * 2.0f - 1.0f; 61 | r = x > maxNum ? 0.0f : r; 62 | r = y > maxNum ? 0.0f : r; 63 | return r; 64 | } 65 | 66 | void freeArray(int i, int j, void** a) 67 | { 68 | for (int x = 0; x < i; x++) { 69 | free(a[x]); 70 | } 71 | free(a); 72 | } 73 | 74 | void train(float **features, vector imgC, bool t_auto, 75 | float C, float gamma, int iters, String name) 76 | { 77 | int *lbl = (int*)malloc(sizeof(int) * imgC.size()); 78 | float *f_block = (float*)malloc(sizeof(float) * 1568 * imgC.size()); 79 | if (!lbl || !f_block) { 80 | std::clog << "No memory" << std::endl; 81 | exit(-1); 82 | } 83 | for (int i = 0; i < imgC.size(); i++) lbl[i] = imgC[i]; 84 | for (int i = 0; i < imgC.size() * 1568; i++) f_block[i] = features[i / 1568][i % 1568]; 85 | 86 | Mat trainingMat(imgC.size(), 1568, CV_32F, f_block); 87 | Mat labelsMat(imgC.size(), 1, CV_32SC1, lbl); 88 | 89 | Ptr svm; 90 | svm = SVM::create(); 91 | svm->setType(SVM::C_SVC); 92 | svm->setKernel(SVM::RBF); 93 | 94 | if (!t_auto) { 95 | svm->setC(C); 96 | svm->setGamma(gamma); 97 | } 98 | svm->setTermCriteria(TermCriteria(TermCriteria::MAX_ITER, iters, 1e-6)); 99 | 100 | if (!t_auto) svm->train(trainingMat, ROW_SAMPLE, labelsMat); 101 | else svm->trainAuto(trainingMat, ROW_SAMPLE, labelsMat); 102 | svm->save(name); 103 | std::clog << "File saved " << name << std::endl; 104 | 105 | free(lbl); 106 | free(f_block); 107 | } 108 | 109 | float* predict(float** features, int n, String name) { 110 | Ptr svm = Algorithm::load(name); 111 | float* lout = (float*)malloc(sizeof(float) * n); 112 | if (!lout || !svm) { 113 | clog << "No memory" << std::endl; 114 | exit(-1); 115 | } 116 | Mat sv = svm->getSupportVectors(); 117 | Mat alpha, svidx; 118 | Mat buffer(1, sv.rows, CV_32F); 119 | 120 | float rho = svm->getDecisionFunction(0, alpha, svidx); 121 | float gamma = svm->getGamma(); 122 | 123 | // .at is slow as heck, might as well just put it in arrays 124 | float **fsv = (float**)createArray(sv.rows, sv.cols, sizeof(float)); 125 | float *falpha = (float*)malloc(alpha.cols * sizeof(float)); 126 | int *isvidx = (int*)malloc(svidx.cols * sizeof(int)); 127 | float *buf = (float*)malloc(sv.rows * sizeof(float)); 128 | 129 | for (int i = 0; i < sv.rows; i++) 130 | { 131 | for (int j = 0; j < sv.cols; j++) 132 | { 133 | fsv[i][j] = sv.at(i, j); 134 | } 135 | } 136 | for (int i = 0; i < alpha.cols; i++) falpha[i] = alpha.at(i); 137 | for (int i = 0; i < svidx.cols; i++) isvidx[i] = svidx.at(i); 138 | 139 | for (int x = 0; x < n; x++) { 140 | for (int k = 0; k < sv.rows; k++) { 141 | float s = 0; 142 | for (int l = 0; l < sv.cols; l++) { 143 | float t0 = fsv[k][l] - features[x][l]; 144 | s += t0 * t0; 145 | } 146 | buf[k] = exp(s * -gamma); 147 | } 148 | 149 | float s = -rho; 150 | for (int k = 0; k < sv.rows; k++) 151 | s += falpha[k] * buf[isvidx[k]]; 152 | 153 | lout[x] = s; 154 | } 155 | 156 | freeArray(sv.rows, sv.cols, (void**)fsv); 157 | free(falpha); 158 | free(isvidx); 159 | free(buf); 160 | return lout; 161 | } 162 | 163 | // extract features 164 | void getHogs(vector images, float** features) 165 | { 166 | int c = 0; 167 | for (auto img : images) { 168 | 169 | float imgL[64][64]; // Luma 170 | for (int i = 0; i < 64; i++) 171 | { 172 | for (int j = 0; j < 64; j++) 173 | { 174 | Vec3b color = img.at(i, j); 175 | float lin_r = (color[2] / 255.0f); 176 | float lin_g = (color[1] / 255.0f); 177 | float lin_b = (color[0] / 255.0f); 178 | //float lin_r = test(i, j, 0, 64); 179 | //float lin_g = test(i, j, 1, 64); 180 | //float lin_b = test(i, j, 2, 64); 181 | imgL[i][j] = 0.2126f*lin_r + 0.7152f*lin_g + 0.0722f*lin_b; 182 | } 183 | } 184 | 185 | // Manually calculating gradients 186 | float gx[64][64]; // x edges 187 | float gy[64][64]; // y edges 188 | float mag[64][64]; // magnitude 189 | float dir[64][64]; // direction 190 | for (int i = 0; i < 64; i++) 191 | { 192 | for (int j = 0; j < 64; j++) 193 | { 194 | int xL = clip(i - 1, 0, 63); 195 | int xH = clip(i + 1, 0, 63); 196 | int yL = clip(j - 1, 0, 63); 197 | int yH = clip(j + 1, 0, 63); 198 | float _00 = imgL[xL][yL]; 199 | float _01 = imgL[xL][j]; 200 | float _02 = imgL[xL][yH]; 201 | float _10 = imgL[i][yL]; 202 | float _11 = imgL[i][j]; 203 | float _12 = imgL[i][yH]; 204 | float _20 = imgL[xH][yL]; 205 | float _21 = imgL[xH][j]; 206 | float _22 = imgL[xH][yH]; 207 | 208 | gy[i][j] = _00 * fY[0][0] + _01 * fY[0][1] + _02 * fY[0][2] + 209 | _10 * fY[1][0] + _11 * fY[1][1] + _12 * fY[1][2] + 210 | _20 * fY[2][0] + _21 * fY[2][1] + _22 * fY[2][2]; 211 | gx[i][j] = _00 * fX[0][0] + _01 * fX[0][1] + _02 * fX[0][2] + 212 | _10 * fX[1][0] + _11 * fX[1][1] + _12 * fX[1][2] + 213 | _20 * fX[2][0] + _21 * fX[2][1] + _22 * fX[2][2]; 214 | 215 | mag[i][j] = sqrt(pow(gx[i][j], 2) + pow(gy[i][j], 2)); 216 | dir[i][j] = atan2(gy[i][j], gx[i][j]) * 180.0f / PI_F; // -180, 180 217 | // unsigned magnitude 218 | dir[i][j] = dir[i][j] < 0.0f ? dir[i][j] + 180.0f : dir[i][j]; 219 | //if (i == 0 && j == 0) 220 | //{ 221 | // std::clog << gx[i][j] << " "; 222 | // std::clog << gy[i][j] << " "; 223 | // std::clog << mag[i][j] << " "; 224 | // std::clog << dir[i][j] << std::endl; 225 | //} 226 | } 227 | } 228 | 229 | // 8x8 binning 230 | // Modified HOG descriptors, 8 instead of 9 bins 231 | // Each bin is 22.5 degrees 232 | float bins[8][8][8]; 233 | 234 | // 8x8 block loop 235 | for (int i = 0; i < 8; i++) { 236 | for (int j = 0; j < 8; j++) { 237 | for (int k = 0; k < 8; k++) bins[i][j][k] = 0.0; 238 | // 8x8 pixel per block loop 239 | for (int x = 0; x < 8; x++) { 240 | for (int y = 0; y < 8; y++) { 241 | int ix = i * 8 + x; 242 | int jy = j * 8 + y; 243 | int id = ((int)floor(dir[ix][jy] / 22.5f)) % 8; 244 | // Last bin wraps around to bin 0, ratio of magnitude to next bin 245 | float binR = dir[ix][jy] > 157.5f ? (dir[ix][jy] - 157.5f) / 22.5f: 0.0f; 246 | 247 | //if (i == 0 && j == 0 && x == 0 && y == 0) 248 | //{ 249 | // std::clog << dir[ix][jy] << " "; 250 | // std::clog << mag[ix][jy] << " "; 251 | // std::clog << id << " "; 252 | // std::clog << binR << std::endl; 253 | //} 254 | 255 | bins[i][j][id] += mag[ix][jy] * (1.0f - binR); 256 | bins[i][j][(id + 1) % 8] += mag[ix][jy] * binR; 257 | } 258 | } 259 | } 260 | } 261 | 262 | //for (int i = 0; i < 8; i++) { 263 | // for (int j = 0; j < 8; j++) { 264 | // std::clog << i << ", " << j << " "; 265 | // for (int k = 0; k < 8; k++) { 266 | // std::clog << bins[i][j][k] << " "; 267 | // } 268 | // std::clog << std::endl; 269 | // } 270 | //} 271 | //std::clog << std::endl; 272 | 273 | //// normFactor Layer 274 | float sum[7][7]; 275 | for (int i = 0; i < 7; i++) { 276 | for (int j = 0; j < 7; j++) { 277 | sum[i][j] = 0.0; 278 | for (int k = 0; k < 8; k++) { 279 | sum[i][j] += bins[i][j][k]; 280 | sum[i][j] += bins[i + 1][j][k]; 281 | sum[i][j] += bins[i][j + 1][k]; 282 | sum[i][j] += bins[i + 1][j + 1][k]; 283 | } 284 | // squash noise 285 | sum[i][j] = sum[i][j] < 4.0f ? 999999.0f : sum[i][j]; 286 | } 287 | } 288 | 289 | //// HOGs (bins / normFactor) Layer 290 | float hogs[14][14][8]; 291 | for (int i = 0; i < 14; i++) { 292 | for (int j = 0; j < 14; j++) { 293 | int si = floor(i / 2); 294 | int sj = floor(j / 2); 295 | int bi = si + (i % 2); 296 | int bj = sj + (j % 2); 297 | 298 | hogs[i][j][0] = bins[bi][bj][0] / (sum[si][sj]); 299 | hogs[i][j][1] = bins[bi][bj][1] / (sum[si][sj]); 300 | hogs[i][j][2] = bins[bi][bj][2] / (sum[si][sj]); 301 | hogs[i][j][3] = bins[bi][bj][3] / (sum[si][sj]); 302 | hogs[i][j][4] = bins[bi][bj][4] / (sum[si][sj]); 303 | hogs[i][j][5] = bins[bi][bj][5] / (sum[si][sj]); 304 | hogs[i][j][6] = bins[bi][bj][6] / (sum[si][sj]); 305 | hogs[i][j][7] = bins[bi][bj][7] / (sum[si][sj]); 306 | } 307 | } 308 | 309 | //for (int i = 0; i < 14; i++) { 310 | // for (int j = 0; j < 14; j++) { 311 | // std::clog << i << ", " << j << " "; 312 | // for (int k = 0; k < 8; k++) { 313 | // std::clog << hogs[i][j][k] << " "; 314 | // } 315 | // std::clog << std::endl; 316 | // } 317 | //} 318 | //std::clog << std::endl; 319 | 320 | bool nan = false; 321 | for (uint i = 0; i < 1568; i++) { 322 | uint j = (i / 112) % 14; 323 | uint k = (i / 8) % 14; 324 | uint l = i % 8; 325 | features[c][i] = hogs[j][k][l]; 326 | nan = nan || isnan(features[c][i]); 327 | //std::clog << features[c][i] << " "; 328 | } 329 | //std::clog << std::endl; 330 | if (nan) 331 | { 332 | std::clog << "Warning: #" << c << " is NaN" << std::endl; 333 | //imshow("NaN", img); 334 | //waitKey(); 335 | } 336 | 337 | c++; 338 | } 339 | } 340 | 341 | int main(int argc, char** argv) 342 | { 343 | String posdir = "\\positive\\*.*"; 344 | String negdir = "\\negative\\*.*"; 345 | String tesdir = "\\test\\*.*"; 346 | String fname = "svm-out.xml"; 347 | int iterations = 100; 348 | 349 | if (argc == 1) 350 | { 351 | std::clog << "Please enter a directory." << endl; 352 | std::system("pause"); 353 | return 0; 354 | } 355 | else if (argc >= 2) 356 | { 357 | String argv1(argv[1]); 358 | if ('\\' == argv1.back()) argv1.pop_back(); 359 | 360 | posdir.insert(0, argv1); 361 | negdir.insert(0, argv1); 362 | tesdir.insert(0, argv1); 363 | 364 | if (argc >= 3) 365 | { 366 | iterations = stoi(argv[2]); 367 | } 368 | } 369 | 370 | unsigned seed = chrono::system_clock::now().time_since_epoch().count(); 371 | srand(seed); 372 | 373 | vector fn; 374 | float **features; 375 | 376 | // train 377 | if (1) 378 | { 379 | vector img; 380 | vector imgC; // image class 381 | 382 | // positives 383 | cv::glob(posdir, fn, false); 384 | for (size_t i = 0; i < fn.size(); i++) 385 | { 386 | Mat imgIn = imread(fn[i]); 387 | if ((rand() % 2) == 0) flip(imgIn, imgIn, 1); 388 | 389 | // Rotate for HLSL 390 | cv::Point2f pc(imgIn.cols / 2., imgIn.rows / 2.); 391 | cv::Mat r = cv::getRotationMatrix2D(pc, -90, 1.0); 392 | cv::warpAffine(imgIn, imgIn, r, imgIn.size()); 393 | 394 | img.push_back(imgIn); 395 | imgC.push_back(0); // Class 0 396 | } 397 | 398 | std::clog << fn.size() << " images in " << posdir << std::endl; 399 | 400 | // negatives 401 | fn.clear(); 402 | cv::glob(negdir, fn, false); 403 | for (size_t i = 0; i < fn.size(); i++) 404 | { 405 | Mat imgIn = imread(fn[i]); 406 | if ((rand() % 2) == 0) flip(imgIn, imgIn, 1); 407 | 408 | // Rotate for HLSL 409 | cv::Point2f pc(imgIn.cols / 2., imgIn.rows / 2.); 410 | cv::Mat r = cv::getRotationMatrix2D(pc, -90, 1.0); 411 | cv::warpAffine(imgIn, imgIn, r, imgIn.size()); 412 | 413 | img.push_back(imgIn); 414 | imgC.push_back(1); // Class 1 415 | } 416 | 417 | std::clog << fn.size() << " images in " << negdir << std::endl; 418 | 419 | // shuffle 420 | std::shuffle(img.begin(), img.end(), default_random_engine(seed)); 421 | std::shuffle(imgC.begin(), imgC.end(), default_random_engine(seed)); 422 | 423 | // total features per image 424 | features = (float**)createArray(img.size(), 1568, sizeof(float)); 425 | 426 | std::clog << "Extracting features" << std::endl; 427 | getHogs(img, features); 428 | 429 | // train 430 | std::clog << "Training..." << std::endl; 431 | train(features, imgC, true, 2.5, 0.50625, iterations, fname); 432 | 433 | freeArray(img.size(), 1568, (void**)features); 434 | } 435 | 436 | // predict 437 | vector img_t; 438 | fn.clear(); 439 | cv::glob(tesdir, fn, false); 440 | for (size_t i = 0; i < fn.size(); i++) 441 | { 442 | Mat imgIn = imread(fn[i]); 443 | if ((rand() % 2) == 0) flip(imgIn, imgIn, 1); 444 | cv::Point2f pc(imgIn.cols / 2., imgIn.rows / 2.); 445 | cv::Mat r = cv::getRotationMatrix2D(pc, -90, 1.0); 446 | cv::warpAffine(imgIn, imgIn, r, imgIn.size()); 447 | img_t.push_back(imgIn); 448 | } 449 | std::clog << fn.size() << " images in " << tesdir << std::endl; 450 | 451 | features = (float**)createArray(img_t.size(), 1568, sizeof(float)); 452 | std::clog << "Extracting features" << std::endl; 453 | getHogs(img_t, features); 454 | 455 | std::clog << "Predict test set..." << std::endl; 456 | float* lout = predict(features, img_t.size(), fname); 457 | 458 | for (int i = 0; i < img_t.size(); i++) 459 | { 460 | std::size_t found = fn[i].find_last_of("/\\"); 461 | std::clog << fn[i].substr(found + 1) << " " << lout[i] << std::endl; 462 | } 463 | 464 | free(lout); 465 | 466 | std::system("pause"); 467 | return 0; 468 | } -------------------------------------------------------------------------------- /Images/Bake.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Images/Bake.png -------------------------------------------------------------------------------- /Images/ChangeNum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Images/ChangeNum.png -------------------------------------------------------------------------------- /Images/Folders.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Images/Folders.png -------------------------------------------------------------------------------- /Images/Preview.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Images/Preview.gif -------------------------------------------------------------------------------- /Images/Project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Images/Project.png -------------------------------------------------------------------------------- /Images/Replace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Images/Replace.png -------------------------------------------------------------------------------- /Images/SVM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Images/SVM.png -------------------------------------------------------------------------------- /Images/SVTotal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Images/SVTotal.png -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 SCRN-VRC 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | # Face and Object Detection Shader 5 | 6 | A binary classifier implemented with a support vector machine (SVM) written in C++ and converted to HLSL to be used inside VRChat. I have included a program that allows you to train your own detector. You can use it to detect other objects as well. 7 | 8 | ## Overview 9 | 10 | 11 | My implementation has three camera inputs to detect varying sizes 480 x 270, 240 x 135, 120 x 67. A 64 x 64 sliding window is applied with a stride of 16 pixels for the largest camera inputs to 8 pixels for the smallest. 12 | 13 | HOG features are extracted by binning by the magnitude of the gradient according to the direction of the gradient into 8 bins. The features are normalized to account for differences in lighting. 14 | 15 | The radial basis function (RBF) kernel is applied to each of the 1568 features per 64 x 64 image block and the support vectors. At the end, classification is done by doing the summation of all RBF calculations per 64 x 64 image block. 16 | 17 | ## Problems 18 | 19 | I have fixed most of the problems I listed in the previous implementation. However, 20 | 1. In VRChat, cameras are friends only, you can only show this to your friends. 21 | 2. SVMs needs to store data of the hyperplane that does the classification. So more training = more complex hyper plane = lag in game. 22 | 23 | ## Setup 24 | 25 | No prerequisites, either clone the repository or download the latest [Release](https://github.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/releases) and open it in Unity 26 | 27 | ## Training 28 | 29 | These steps are only for the people who want to train their own detector. 30 | 1. Get the svm-detector.exe in [Release](https://github.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/releases) or compile it yourself. **The .exe only works with x64 bit machines, anything else you'll have to compile it yourself. Compiling the C++ code requires OpenCV 4.0.1.** 31 | 2. Layout your training data like this example for the Faces folder. **All pictures must be 64 x 64 in size.** 32 | 33 | 34 | 3. Run svm-detector.exe with the path to the folder. For example, ```svm-detector.exe D:\Storage\Datasets\Faces 100``` will look for images in the Faces folder and train for 100 iterations. 35 | 4. After the program finishes, it will output a ```svm-out.xml``` file containing the support vectors for classification. 36 | 5. To use it inside VRChat, drop the ```svm-out.xml``` file into the Unity project with this repository. 37 | 6. Navigate the menu Tool -> SCRN -> Bake Support Vectors, put in the .xml file and hit Bake! 38 | 39 | 40 | 7. After a few seconds there should be a new ```SupportVectors.asset``` file in the SVM Detector folder. If a ```SupportVectors.asset``` already exists, it will be overwritten. 41 | 8. In the SVM prefab, find the game object called SVM place the new ```SupportVectors.asset``` into the Support Vectors texture slot. 42 | 43 | 44 | 9. Click on the ```svm-out.xml``` file and look at the contents in the Inspector, remember the sv_total number. 45 | 46 | 47 | 10. Locate ```svmhelper.cginc``` inside the Shaders folder. 48 | 11. Change number after SV_NUM in ```svmhelper.cginc``` to the number you saw for sv_total inside ```svm-out.xml```. 49 | 50 | 51 | 12. Done! 52 | 53 | ## Contact 54 | 55 | Contact me on Discord if you have any questions or suggestions: **SCRN#8008** 56 | 57 | Thanks to [Merlin](https://github.com/MerlinVR) and 1001 for making this possible. 58 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 01fe1cd1e9f17ef4181870439efe0eba 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Animations.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 634c54d9df7da0649ad5e30a86fef819 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Animations/CamOn.anim: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!74 &7400000 4 | AnimationClip: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: CamOn 10 | serializedVersion: 6 11 | m_Legacy: 0 12 | m_Compressed: 0 13 | m_UseHighQualityCurve: 1 14 | m_RotationCurves: [] 15 | m_CompressedRotationCurves: [] 16 | m_EulerCurves: [] 17 | m_PositionCurves: [] 18 | m_ScaleCurves: [] 19 | m_FloatCurves: 20 | - curve: 21 | serializedVersion: 2 22 | m_Curve: 23 | - serializedVersion: 3 24 | time: 0 25 | value: 1 26 | inSlope: Infinity 27 | outSlope: Infinity 28 | tangentMode: 103 29 | weightedMode: 0 30 | inWeight: 0 31 | outWeight: 0 32 | - serializedVersion: 3 33 | time: 10 34 | value: 1 35 | inSlope: Infinity 36 | outSlope: Infinity 37 | tangentMode: 103 38 | weightedMode: 0 39 | inWeight: 0 40 | outWeight: 0 41 | m_PreInfinity: 2 42 | m_PostInfinity: 2 43 | m_RotationOrder: 4 44 | attribute: m_Enabled 45 | path: Cameras/CameraLow 46 | classID: 20 47 | script: {fileID: 0} 48 | - curve: 49 | serializedVersion: 2 50 | m_Curve: 51 | - serializedVersion: 3 52 | time: 0 53 | value: 1 54 | inSlope: Infinity 55 | outSlope: Infinity 56 | tangentMode: 103 57 | weightedMode: 0 58 | inWeight: 0 59 | outWeight: 0 60 | - serializedVersion: 3 61 | time: 10 62 | value: 1 63 | inSlope: Infinity 64 | outSlope: Infinity 65 | tangentMode: 103 66 | weightedMode: 0 67 | inWeight: 0 68 | outWeight: 0 69 | m_PreInfinity: 2 70 | m_PostInfinity: 2 71 | m_RotationOrder: 4 72 | attribute: m_Enabled 73 | path: Cameras/CameraHigh 74 | classID: 20 75 | script: {fileID: 0} 76 | - curve: 77 | serializedVersion: 2 78 | m_Curve: 79 | - serializedVersion: 3 80 | time: 0 81 | value: 1 82 | inSlope: Infinity 83 | outSlope: Infinity 84 | tangentMode: 103 85 | weightedMode: 0 86 | inWeight: 0 87 | outWeight: 0 88 | - serializedVersion: 3 89 | time: 10 90 | value: 1 91 | inSlope: Infinity 92 | outSlope: Infinity 93 | tangentMode: 103 94 | weightedMode: 0 95 | inWeight: 0 96 | outWeight: 0 97 | m_PreInfinity: 2 98 | m_PostInfinity: 2 99 | m_RotationOrder: 4 100 | attribute: m_Enabled 101 | path: SVM/Camera 102 | classID: 20 103 | script: {fileID: 0} 104 | - curve: 105 | serializedVersion: 2 106 | m_Curve: 107 | - serializedVersion: 3 108 | time: 0 109 | value: 1 110 | inSlope: Infinity 111 | outSlope: Infinity 112 | tangentMode: 103 113 | weightedMode: 0 114 | inWeight: 0 115 | outWeight: 0 116 | - serializedVersion: 3 117 | time: 10 118 | value: 1 119 | inSlope: Infinity 120 | outSlope: Infinity 121 | tangentMode: 103 122 | weightedMode: 0 123 | inWeight: 0 124 | outWeight: 0 125 | m_PreInfinity: 2 126 | m_PostInfinity: 2 127 | m_RotationOrder: 4 128 | attribute: m_Enabled 129 | path: SVM/Buffer/Camera 130 | classID: 20 131 | script: {fileID: 0} 132 | m_PPtrCurves: [] 133 | m_SampleRate: 60 134 | m_WrapMode: 0 135 | m_Bounds: 136 | m_Center: {x: 0, y: 0, z: 0} 137 | m_Extent: {x: 0, y: 0, z: 0} 138 | m_ClipBindingConstant: 139 | genericBindings: 140 | - serializedVersion: 2 141 | path: 1251436742 142 | attribute: 3305885265 143 | script: {fileID: 0} 144 | typeID: 20 145 | customType: 0 146 | isPPtrCurve: 0 147 | - serializedVersion: 2 148 | path: 571150270 149 | attribute: 3305885265 150 | script: {fileID: 0} 151 | typeID: 20 152 | customType: 0 153 | isPPtrCurve: 0 154 | - serializedVersion: 2 155 | path: 3070146840 156 | attribute: 3305885265 157 | script: {fileID: 0} 158 | typeID: 20 159 | customType: 0 160 | isPPtrCurve: 0 161 | - serializedVersion: 2 162 | path: 2936641988 163 | attribute: 3305885265 164 | script: {fileID: 0} 165 | typeID: 20 166 | customType: 0 167 | isPPtrCurve: 0 168 | pptrCurveMapping: [] 169 | m_AnimationClipSettings: 170 | serializedVersion: 2 171 | m_AdditiveReferencePoseClip: {fileID: 0} 172 | m_AdditiveReferencePoseTime: 0 173 | m_StartTime: 0 174 | m_StopTime: 10 175 | m_OrientationOffsetY: 0 176 | m_Level: 0 177 | m_CycleOffset: 0 178 | m_HasAdditiveReferencePose: 0 179 | m_LoopTime: 1 180 | m_LoopBlend: 0 181 | m_LoopBlendOrientation: 0 182 | m_LoopBlendPositionY: 0 183 | m_LoopBlendPositionXZ: 0 184 | m_KeepOriginalOrientation: 0 185 | m_KeepOriginalPositionY: 1 186 | m_KeepOriginalPositionXZ: 0 187 | m_HeightFromFeet: 0 188 | m_Mirror: 0 189 | m_EditorCurves: 190 | - curve: 191 | serializedVersion: 2 192 | m_Curve: 193 | - serializedVersion: 3 194 | time: 0 195 | value: 1 196 | inSlope: Infinity 197 | outSlope: Infinity 198 | tangentMode: 103 199 | weightedMode: 0 200 | inWeight: 0 201 | outWeight: 0 202 | - serializedVersion: 3 203 | time: 10 204 | value: 1 205 | inSlope: Infinity 206 | outSlope: Infinity 207 | tangentMode: 103 208 | weightedMode: 0 209 | inWeight: 0 210 | outWeight: 0 211 | m_PreInfinity: 2 212 | m_PostInfinity: 2 213 | m_RotationOrder: 4 214 | attribute: m_Enabled 215 | path: Cameras/CameraLow 216 | classID: 20 217 | script: {fileID: 0} 218 | - curve: 219 | serializedVersion: 2 220 | m_Curve: 221 | - serializedVersion: 3 222 | time: 0 223 | value: 1 224 | inSlope: Infinity 225 | outSlope: Infinity 226 | tangentMode: 103 227 | weightedMode: 0 228 | inWeight: 0 229 | outWeight: 0 230 | - serializedVersion: 3 231 | time: 10 232 | value: 1 233 | inSlope: Infinity 234 | outSlope: Infinity 235 | tangentMode: 103 236 | weightedMode: 0 237 | inWeight: 0 238 | outWeight: 0 239 | m_PreInfinity: 2 240 | m_PostInfinity: 2 241 | m_RotationOrder: 4 242 | attribute: m_Enabled 243 | path: Cameras/CameraHigh 244 | classID: 20 245 | script: {fileID: 0} 246 | - curve: 247 | serializedVersion: 2 248 | m_Curve: 249 | - serializedVersion: 3 250 | time: 0 251 | value: 1 252 | inSlope: Infinity 253 | outSlope: Infinity 254 | tangentMode: 103 255 | weightedMode: 0 256 | inWeight: 0 257 | outWeight: 0 258 | - serializedVersion: 3 259 | time: 10 260 | value: 1 261 | inSlope: Infinity 262 | outSlope: Infinity 263 | tangentMode: 103 264 | weightedMode: 0 265 | inWeight: 0 266 | outWeight: 0 267 | m_PreInfinity: 2 268 | m_PostInfinity: 2 269 | m_RotationOrder: 4 270 | attribute: m_Enabled 271 | path: SVM/Camera 272 | classID: 20 273 | script: {fileID: 0} 274 | - curve: 275 | serializedVersion: 2 276 | m_Curve: 277 | - serializedVersion: 3 278 | time: 0 279 | value: 1 280 | inSlope: Infinity 281 | outSlope: Infinity 282 | tangentMode: 103 283 | weightedMode: 0 284 | inWeight: 0 285 | outWeight: 0 286 | - serializedVersion: 3 287 | time: 10 288 | value: 1 289 | inSlope: Infinity 290 | outSlope: Infinity 291 | tangentMode: 103 292 | weightedMode: 0 293 | inWeight: 0 294 | outWeight: 0 295 | m_PreInfinity: 2 296 | m_PostInfinity: 2 297 | m_RotationOrder: 4 298 | attribute: m_Enabled 299 | path: SVM/Buffer/Camera 300 | classID: 20 301 | script: {fileID: 0} 302 | m_EulerEditorCurves: [] 303 | m_HasGenericRootTransform: 0 304 | m_HasMotionFloatCurves: 0 305 | m_Events: [] 306 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Animations/CamOn.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3932fcdfbfde46942b119dcafa553c1c 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Animations/SVM CamOn.controller: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!91 &9100000 4 | AnimatorController: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: SVM CamOn 10 | serializedVersion: 5 11 | m_AnimatorParameters: [] 12 | m_AnimatorLayers: 13 | - serializedVersion: 5 14 | m_Name: Base Layer 15 | m_StateMachine: {fileID: 1107563125597649170} 16 | m_Mask: {fileID: 0} 17 | m_Motions: [] 18 | m_Behaviours: [] 19 | m_BlendingMode: 0 20 | m_SyncedLayerIndex: -1 21 | m_DefaultWeight: 0 22 | m_IKPass: 0 23 | m_SyncedLayerAffectsTiming: 0 24 | m_Controller: {fileID: 9100000} 25 | --- !u!1102 &1102679908900118392 26 | AnimatorState: 27 | serializedVersion: 5 28 | m_ObjectHideFlags: 1 29 | m_CorrespondingSourceObject: {fileID: 0} 30 | m_PrefabInstance: {fileID: 0} 31 | m_PrefabAsset: {fileID: 0} 32 | m_Name: CamOn 33 | m_Speed: 1 34 | m_CycleOffset: 0 35 | m_Transitions: [] 36 | m_StateMachineBehaviours: [] 37 | m_Position: {x: 50, y: 50, z: 0} 38 | m_IKOnFeet: 0 39 | m_WriteDefaultValues: 1 40 | m_Mirror: 0 41 | m_SpeedParameterActive: 0 42 | m_MirrorParameterActive: 0 43 | m_CycleOffsetParameterActive: 0 44 | m_TimeParameterActive: 0 45 | m_Motion: {fileID: 7400000, guid: 3932fcdfbfde46942b119dcafa553c1c, type: 2} 46 | m_Tag: 47 | m_SpeedParameter: 48 | m_MirrorParameter: 49 | m_CycleOffsetParameter: 50 | m_TimeParameter: 51 | --- !u!1107 &1107563125597649170 52 | AnimatorStateMachine: 53 | serializedVersion: 5 54 | m_ObjectHideFlags: 1 55 | m_CorrespondingSourceObject: {fileID: 0} 56 | m_PrefabInstance: {fileID: 0} 57 | m_PrefabAsset: {fileID: 0} 58 | m_Name: Base Layer 59 | m_ChildStates: 60 | - serializedVersion: 1 61 | m_State: {fileID: 1102679908900118392} 62 | m_Position: {x: 200, y: 0, z: 0} 63 | m_ChildStateMachines: [] 64 | m_AnyStateTransitions: [] 65 | m_EntryTransitions: [] 66 | m_StateMachineTransitions: {} 67 | m_StateMachineBehaviours: [] 68 | m_AnyStatePosition: {x: 50, y: 20, z: 0} 69 | m_EntryPosition: {x: 50, y: 120, z: 0} 70 | m_ExitPosition: {x: 800, y: 120, z: 0} 71 | m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} 72 | m_DefaultState: {fileID: 1102679908900118392} 73 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Animations/SVM CamOn.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4ac43a6b4e4f6e848842d58441abab73 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 9100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d3c63fc96410f11499a380bf5b1373d2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Editor/BakeSV.cs: -------------------------------------------------------------------------------- 1 | #if UNITY_EDITOR 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | using UnityEditor; 6 | using System.IO; 7 | using System.Text.RegularExpressions; 8 | using UnityEngine.UI; 9 | 10 | [ExecuteInEditMode] 11 | public class BakeSV : EditorWindow { 12 | 13 | string SavePath1 = "Assets/SVM Detector/SupportVectors.asset"; 14 | public TextAsset source; 15 | public RenderTexture imgSource; 16 | public string imgText; 17 | 18 | [MenuItem("Tools/SCRN/Bake Support Vectors")] 19 | static void Init() 20 | { 21 | var window = GetWindowWithRect(new Rect(0, 0, 400, 250)); 22 | window.Show(); 23 | } 24 | 25 | void OnGUI() 26 | { 27 | GUILayout.Label("Bake Support Vectors", EditorStyles.boldLabel); 28 | EditorGUILayout.BeginHorizontal(); 29 | source = (TextAsset) EditorGUILayout.ObjectField("SVM Output (.xml):", source, typeof(TextAsset), false); 30 | EditorGUILayout.EndHorizontal(); 31 | 32 | if (GUILayout.Button("Bake!")) { 33 | 34 | if (source == null) 35 | ShowNotification(new GUIContent("Select the .xml output file")); 36 | else 37 | OnGenerateTexture(); 38 | } 39 | } 40 | 41 | void OnGenerateTexture() 42 | { 43 | //Support vector groups 44 | Regex rgSVs = new Regex("(?<=)[\\s\\S]*(?=)"); 45 | 46 | Match mSVs = rgSVs.Match(source.text); 47 | string strSVs = mSVs.Groups[0].Value; 48 | 49 | if (strSVs.Length == 0) { 50 | ShowNotification(new GUIContent("Wrong file format")); 51 | return; 52 | } 53 | 54 | //Individual support vector 55 | Regex rgSV = new Regex("(?<=<_>)[\\s\\S]*?(?=)"); 56 | //Floats with exponents 57 | Regex rgFloats = new Regex("[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?"); 58 | 59 | MatchCollection mSV = rgSV.Matches(strSVs); 60 | CaptureCollection sv = mSV[0].Captures; 61 | MatchCollection mFloats = rgFloats.Matches(sv[0].Value); 62 | 63 | Texture2D tex = new Texture2D(800, 800, TextureFormat.RFloat, false); 64 | tex.wrapMode = TextureWrapMode.Clamp; 65 | tex.filterMode = FilterMode.Point; 66 | tex.anisoLevel = 1; 67 | 68 | int i = 0; 69 | foreach (Match iSV in mSV) { 70 | sv = iSV.Captures; 71 | mFloats = rgFloats.Matches(sv[0].Value); 72 | 73 | int j = 0; 74 | 75 | foreach (Match iFloat in mFloats) { 76 | CaptureCollection fl = iFloat.Captures; 77 | float stf = float.Parse(fl[0].Value); 78 | tex.SetPixel(j % 40 + (i % 20) * 40, j / 40 + (i / 20) * 40, 79 | new Color(stf, 0.0f, 0.0f, 0.0f)); 80 | j++; 81 | } 82 | i++; 83 | } 84 | 85 | Regex rgAlpha = new Regex("(?<=)[\\s\\S]*(?=)"); 86 | Regex rgIndex = new Regex("(?<=)[\\s\\S]*(?=)"); 87 | 88 | Match mAlpha = rgAlpha.Match(source.text); 89 | string strAlpha = mAlpha.Groups[0].Value; 90 | Match mIndex = rgIndex.Match(source.text); 91 | string strIndex = mIndex.Groups[0].Value; 92 | 93 | if (strAlpha.Length == 0 || strIndex.Length == 0) { 94 | ShowNotification(new GUIContent("Wrong file format")); 95 | return; 96 | } 97 | 98 | MatchCollection alphaF = rgFloats.Matches(strAlpha); 99 | MatchCollection indexF = rgFloats.Matches(strIndex); 100 | 101 | for (i = 0; i < mSV.Count; i++) { 102 | float alpha = float.Parse(alphaF[i].Captures[0].Value); 103 | float index = float.Parse(indexF[i].Captures[0].Value); 104 | tex.SetPixel(i, 798, new Color(index, 0.0f, 0.0f, 0.0f)); 105 | tex.SetPixel(i, 799, new Color(alpha, 0.0f, 0.0f, 0.0f)); 106 | } 107 | 108 | Regex rgRho = new Regex("(?<=)[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?"); 109 | Match mRho = rgRho.Match(source.text); 110 | string strRho = mRho.Groups[0].Value; 111 | 112 | Regex rgGamma = new Regex("(?<=)[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?"); 113 | Match mGamma = rgGamma.Match(source.text); 114 | string strGamma = mGamma.Groups[0].Value; 115 | 116 | tex.SetPixel(799, 799, new Color(float.Parse(strRho), 0.0f, 0.0f, 0.0f)); 117 | tex.SetPixel(798, 799, new Color(float.Parse(strGamma), 0.0f, 0.0f, 0.0f)); 118 | tex.SetPixel(797, 799, new Color(mSV.Count, 0.0f, 0.0f, 0.0f)); 119 | 120 | AssetDatabase.CreateAsset(tex, SavePath1); 121 | AssetDatabase.SaveAssets(); 122 | 123 | ShowNotification(new GUIContent("Done")); 124 | } 125 | } 126 | #endif -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Editor/BakeSV.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f3a2fd77b1cff5f42b258b556d9169e6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d09d8bf32adf3ec46b053d0fd2ddc594 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Materials/buffer.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: buffer 11 | m_Shader: {fileID: 4800000, guid: 2b5dab098d91cf64c994aa36d5ea2ad7, 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: 8400000, guid: d2ace7d508fe58947b3317abd0c68cab, type: 2} 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 | - _MaxDist: 0.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 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Materials/buffer.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 05fa2f51955702b4989e08292e735754 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Materials/color1.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: color1 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 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Materials/color1.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4e12f0eb108dd6e46ade847394a7cc0f 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Materials/color2.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: color2 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: 0, b: 0, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Materials/color2.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f388fc0096cc38a4bab0871068c07c93 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Materials/debug.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: debug 11 | m_Shader: {fileID: 4800000, guid: a20760e43cf42414fa0cb2a025eb5cbe, 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: 8400000, guid: a8b0325b59c470a4bb4d08f8fa9a1183, type: 2} 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 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Materials/debug.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9d69614ebc9ebe44ca970bd59e0bdc8a 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Materials/output.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: output 11 | m_Shader: {fileID: 4800000, guid: 286107c66e74a244c9b17ed6b5a508c3, type: 3} 12 | m_ShaderKeywords: _BOUNDBOX_ON 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 | - _Buffer: 23 | m_Texture: {fileID: 8400000, guid: a8b0325b59c470a4bb4d08f8fa9a1183, type: 2} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _BumpMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailAlbedoMap: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailMask: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _DetailNormalMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _EmissionMap: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _HatTex: 47 | m_Texture: {fileID: 2800000, guid: 39f77ba42047bcb46ac9656da6c64ad5, type: 3} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _MainTex: 51 | m_Texture: {fileID: 8400000, guid: b8077ee3d7372ca4486b7030510012a9, type: 2} 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 | - _BoundBox: 1 68 | - _BumpScale: 1 69 | - _Cutoff: 0.5 70 | - _DetailNormalMapScale: 1 71 | - _DstBlend: 0 72 | - _GlossMapScale: 1 73 | - _Glossiness: 0.5 74 | - _GlossyReflections: 1 75 | - _HatSelect: 2 76 | - _Metallic: 0 77 | - _Mode: 0 78 | - _OcclusionStrength: 1 79 | - _Parallax: 0.02 80 | - _SmoothnessTextureChannel: 0 81 | - _SpecularHighlights: 1 82 | - _SrcBlend: 1 83 | - _Threshold: 0.1 84 | - _UVSec: 0 85 | - _ZWrite: 1 86 | m_Colors: 87 | - _Color: {r: 1, g: 1, b: 1, a: 1} 88 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 89 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Materials/output.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bc3dab52cc1ec9a40bfbca0ebf39799f 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Materials/presentation.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: presentation 11 | m_Shader: {fileID: 10750, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 0 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: 88dfd4c7ef0d7194b8013f3674ae6b52, 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 | - _BlendOp: 0 60 | - _BumpScale: 1 61 | - _CameraFadingEnabled: 0 62 | - _CameraFarFadeDistance: 2 63 | - _CameraNearFadeDistance: 1 64 | - _ColorMode: 0 65 | - _Cull: 2 66 | - _Cutoff: 0.5 67 | - _DetailNormalMapScale: 1 68 | - _DistortionBlend: 0.5 69 | - _DistortionEnabled: 0 70 | - _DistortionStrength: 1 71 | - _DistortionStrengthScaled: 0 72 | - _DstBlend: 0 73 | - _EmissionEnabled: 0 74 | - _FlipbookMode: 0 75 | - _GlossMapScale: 1 76 | - _Glossiness: 0.5 77 | - _GlossyReflections: 1 78 | - _LightingEnabled: 0 79 | - _Metallic: 0 80 | - _Mode: 0 81 | - _OcclusionStrength: 1 82 | - _Parallax: 0.02 83 | - _SmoothnessTextureChannel: 0 84 | - _SoftParticlesEnabled: 0 85 | - _SoftParticlesFarFadeDistance: 1 86 | - _SoftParticlesNearFadeDistance: 0 87 | - _SpecularHighlights: 1 88 | - _SrcBlend: 1 89 | - _UVSec: 0 90 | - _ZWrite: 1 91 | m_Colors: 92 | - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} 93 | - _Color: {r: 1, g: 1, b: 1, a: 1} 94 | - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0} 95 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 96 | - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} 97 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Materials/presentation.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 97bea2a58c1dab5418fd6a2ca498488d 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Materials/svm.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: svm 11 | m_Shader: {fileID: 4800000, guid: 1002441ca1f38894c8cf93f17562efba, 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 | - _Buffer: 23 | m_Texture: {fileID: 8400000, guid: a8b0325b59c470a4bb4d08f8fa9a1183, type: 2} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _BumpMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _CamIn: 31 | m_Texture: {fileID: 8400000, guid: e9cbad1ce5bc87d468664e87fe0d1708, type: 2} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DV: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _DetailAlbedoMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _DetailMask: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _DetailNormalMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _EmissionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _MainTex: 55 | m_Texture: {fileID: 8400000, guid: a8b0325b59c470a4bb4d08f8fa9a1183, type: 2} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | - _MetallicGlossMap: 59 | m_Texture: {fileID: 0} 60 | m_Scale: {x: 1, y: 1} 61 | m_Offset: {x: 0, y: 0} 62 | - _OcclusionMap: 63 | m_Texture: {fileID: 0} 64 | m_Scale: {x: 1, y: 1} 65 | m_Offset: {x: 0, y: 0} 66 | - _ParallaxMap: 67 | m_Texture: {fileID: 0} 68 | m_Scale: {x: 1, y: 1} 69 | m_Offset: {x: 0, y: 0} 70 | - _SV: 71 | m_Texture: {fileID: 2800000, guid: 328db56f8ac8fa0468a06eaa2a51761c, type: 2} 72 | m_Scale: {x: 1, y: 1} 73 | m_Offset: {x: 0, y: 0} 74 | m_Floats: 75 | - _BumpScale: 1 76 | - _Cutoff: 0.5 77 | - _DetailNormalMapScale: 1 78 | - _DstBlend: 0 79 | - _GlossMapScale: 1 80 | - _Glossiness: 0.5 81 | - _GlossyReflections: 1 82 | - _IdleTime: 0 83 | - _MaxDist: 0.1 84 | - _Metallic: 0 85 | - _Mode: 0 86 | - _OcclusionStrength: 1 87 | - _Parallax: 0.02 88 | - _SmoothnessTextureChannel: 0 89 | - _SpecularHighlights: 1 90 | - _SrcBlend: 1 91 | - _UVSec: 0 92 | - _ZWrite: 1 93 | m_Colors: 94 | - _Color: {r: 1, g: 1, b: 1, a: 1} 95 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 96 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Materials/svm.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bb09d8804abd5844b90822c09aaa2fb8 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Materials/test.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: test 11 | m_Shader: {fileID: 10752, 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 | - _MainTex: 23 | m_Texture: {fileID: 2800000, guid: 0cb824deafafadc4d9a98dedbd9ced9e, type: 3} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | m_Floats: 27 | - _MaxDist: 0.05 28 | m_Colors: [] 29 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Materials/test.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: deece38c82bf60d4c879cbc2d281885a 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Materials/visual.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: visual 11 | m_Shader: {fileID: 4800000, guid: 3de97d76fde192843ae6462843d1146f, 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 | - _Buffer: 23 | m_Texture: {fileID: 8400000, guid: a8b0325b59c470a4bb4d08f8fa9a1183, type: 2} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _BumpMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailAlbedoMap: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailMask: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _DetailNormalMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _EmissionMap: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MainTex: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _MetallicGlossMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _OcclusionMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | - _ParallaxMap: 59 | m_Texture: {fileID: 0} 60 | m_Scale: {x: 1, y: 1} 61 | m_Offset: {x: 0, y: 0} 62 | m_Floats: 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 | - _SmoothnessTextureChannel: 0 75 | - _SpecularHighlights: 1 76 | - _SrcBlend: 1 77 | - _Threshold: 0.3 78 | - _UVSec: 0 79 | - _ZWrite: 1 80 | m_Colors: 81 | - _Color: {r: 1, g: 1, b: 1, a: 1} 82 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 83 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Materials/visual.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a763f4f95a458ed43b83c745f7e94043 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c77b9bd405dafac459a1c4e243d9e633 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Prefab/SVMDetectorPrefab.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &583394479233162812 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 4609193001161402218} 12 | - component: {fileID: 7076572931860289490} 13 | - component: {fileID: 1186797828141512004} 14 | - component: {fileID: 8946316791958239272} 15 | m_Layer: 12 16 | m_Name: Camera 17 | m_TagString: Untagged 18 | m_Icon: {fileID: 0} 19 | m_NavMeshLayer: 0 20 | m_StaticEditorFlags: 0 21 | m_IsActive: 1 22 | --- !u!4 &4609193001161402218 23 | Transform: 24 | m_ObjectHideFlags: 0 25 | m_CorrespondingSourceObject: {fileID: 0} 26 | m_PrefabInstance: {fileID: 0} 27 | m_PrefabAsset: {fileID: 0} 28 | m_GameObject: {fileID: 583394479233162812} 29 | m_LocalRotation: {x: -0, y: 1, z: -0, w: 0} 30 | m_LocalPosition: {x: 0, y: 0, z: 0.05} 31 | m_LocalScale: {x: 1, y: 1, z: 1} 32 | m_Children: [] 33 | m_Father: {fileID: 5427487186708248913} 34 | m_RootOrder: 0 35 | m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} 36 | --- !u!20 &7076572931860289490 37 | Camera: 38 | m_ObjectHideFlags: 0 39 | m_CorrespondingSourceObject: {fileID: 0} 40 | m_PrefabInstance: {fileID: 0} 41 | m_PrefabAsset: {fileID: 0} 42 | m_GameObject: {fileID: 583394479233162812} 43 | m_Enabled: 0 44 | serializedVersion: 2 45 | m_ClearFlags: 2 46 | m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} 47 | m_projectionMatrixMode: 1 48 | m_SensorSize: {x: 36, y: 24} 49 | m_LensShift: {x: 0, y: 0} 50 | m_GateFitMode: 2 51 | m_FocalLength: 50 52 | m_NormalizedViewPortRect: 53 | serializedVersion: 2 54 | x: 0 55 | y: 0 56 | width: 1 57 | height: 1 58 | near clip plane: 0 59 | far clip plane: 0.1 60 | field of view: 60 61 | orthographic: 1 62 | orthographic size: 0.1 63 | m_Depth: 0 64 | m_CullingMask: 65 | serializedVersion: 2 66 | m_Bits: 4096 67 | m_RenderingPath: -1 68 | m_TargetTexture: {fileID: 8400000, guid: a8b0325b59c470a4bb4d08f8fa9a1183, type: 2} 69 | m_TargetDisplay: 0 70 | m_TargetEye: 3 71 | m_HDR: 0 72 | m_AllowMSAA: 0 73 | m_AllowDynamicResolution: 0 74 | m_ForceIntoRT: 0 75 | m_OcclusionCulling: 1 76 | m_StereoConvergence: 10 77 | m_StereoSeparation: 0.022 78 | --- !u!124 &1186797828141512004 79 | Behaviour: 80 | m_ObjectHideFlags: 0 81 | m_CorrespondingSourceObject: {fileID: 0} 82 | m_PrefabInstance: {fileID: 0} 83 | m_PrefabAsset: {fileID: 0} 84 | m_GameObject: {fileID: 583394479233162812} 85 | m_Enabled: 0 86 | --- !u!92 &8946316791958239272 87 | Behaviour: 88 | m_ObjectHideFlags: 0 89 | m_CorrespondingSourceObject: {fileID: 0} 90 | m_PrefabInstance: {fileID: 0} 91 | m_PrefabAsset: {fileID: 0} 92 | m_GameObject: {fileID: 583394479233162812} 93 | m_Enabled: 0 94 | --- !u!1 &1773047041711805117 95 | GameObject: 96 | m_ObjectHideFlags: 0 97 | m_CorrespondingSourceObject: {fileID: 0} 98 | m_PrefabInstance: {fileID: 0} 99 | m_PrefabAsset: {fileID: 0} 100 | serializedVersion: 6 101 | m_Component: 102 | - component: {fileID: 7159227148879841730} 103 | - component: {fileID: 7101448133329109093} 104 | - component: {fileID: 8603173355486401890} 105 | m_Layer: 0 106 | m_Name: Cameras 107 | m_TagString: Untagged 108 | m_Icon: {fileID: 0} 109 | m_NavMeshLayer: 0 110 | m_StaticEditorFlags: 0 111 | m_IsActive: 1 112 | --- !u!4 &7159227148879841730 113 | Transform: 114 | m_ObjectHideFlags: 0 115 | m_CorrespondingSourceObject: {fileID: 0} 116 | m_PrefabInstance: {fileID: 0} 117 | m_PrefabAsset: {fileID: 0} 118 | m_GameObject: {fileID: 1773047041711805117} 119 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 120 | m_LocalPosition: {x: -0.577, y: 1, z: -0.89699996} 121 | m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} 122 | m_Children: 123 | - {fileID: 4862303617566537256} 124 | - {fileID: 6477452625874954739} 125 | - {fileID: 7869560547213347101} 126 | m_Father: {fileID: 2284162462215388331} 127 | m_RootOrder: 1 128 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 129 | --- !u!23 &7101448133329109093 130 | MeshRenderer: 131 | m_ObjectHideFlags: 0 132 | m_CorrespondingSourceObject: {fileID: 0} 133 | m_PrefabInstance: {fileID: 0} 134 | m_PrefabAsset: {fileID: 0} 135 | m_GameObject: {fileID: 1773047041711805117} 136 | m_Enabled: 1 137 | m_CastShadows: 1 138 | m_ReceiveShadows: 1 139 | m_DynamicOccludee: 1 140 | m_MotionVectors: 1 141 | m_LightProbeUsage: 1 142 | m_ReflectionProbeUsage: 1 143 | m_RenderingLayerMask: 1 144 | m_RendererPriority: 0 145 | m_Materials: 146 | - {fileID: 2100000, guid: 4e12f0eb108dd6e46ade847394a7cc0f, type: 2} 147 | m_StaticBatchInfo: 148 | firstSubMesh: 0 149 | subMeshCount: 0 150 | m_StaticBatchRoot: {fileID: 0} 151 | m_ProbeAnchor: {fileID: 0} 152 | m_LightProbeVolumeOverride: {fileID: 0} 153 | m_ScaleInLightmap: 1 154 | m_PreserveUVs: 0 155 | m_IgnoreNormalsForChartDetection: 0 156 | m_ImportantGI: 0 157 | m_StitchLightmapSeams: 0 158 | m_SelectedEditorRenderState: 3 159 | m_MinimumChartSize: 4 160 | m_AutoUVMaxDistance: 0.5 161 | m_AutoUVMaxAngle: 89 162 | m_LightmapParameters: {fileID: 0} 163 | m_SortingLayerID: 0 164 | m_SortingLayer: 0 165 | m_SortingOrder: 0 166 | --- !u!33 &8603173355486401890 167 | MeshFilter: 168 | m_ObjectHideFlags: 0 169 | m_CorrespondingSourceObject: {fileID: 0} 170 | m_PrefabInstance: {fileID: 0} 171 | m_PrefabAsset: {fileID: 0} 172 | m_GameObject: {fileID: 1773047041711805117} 173 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 174 | --- !u!1 &2529736697194644373 175 | GameObject: 176 | m_ObjectHideFlags: 0 177 | m_CorrespondingSourceObject: {fileID: 0} 178 | m_PrefabInstance: {fileID: 0} 179 | m_PrefabAsset: {fileID: 0} 180 | serializedVersion: 6 181 | m_Component: 182 | - component: {fileID: 7869560547213347101} 183 | - component: {fileID: 254308202812461624} 184 | - component: {fileID: 6030067664266472862} 185 | - component: {fileID: 3804608364812251285} 186 | m_Layer: 12 187 | m_Name: CameraHigh 188 | m_TagString: Untagged 189 | m_Icon: {fileID: 0} 190 | m_NavMeshLayer: 0 191 | m_StaticEditorFlags: 0 192 | m_IsActive: 1 193 | --- !u!4 &7869560547213347101 194 | Transform: 195 | m_ObjectHideFlags: 0 196 | m_CorrespondingSourceObject: {fileID: 0} 197 | m_PrefabInstance: {fileID: 0} 198 | m_PrefabAsset: {fileID: 0} 199 | m_GameObject: {fileID: 2529736697194644373} 200 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 201 | m_LocalPosition: {x: 0, y: 0, z: 0.5} 202 | m_LocalScale: {x: 1, y: 1, z: 1} 203 | m_Children: [] 204 | m_Father: {fileID: 7159227148879841730} 205 | m_RootOrder: 2 206 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 207 | --- !u!20 &254308202812461624 208 | Camera: 209 | m_ObjectHideFlags: 0 210 | m_CorrespondingSourceObject: {fileID: 0} 211 | m_PrefabInstance: {fileID: 0} 212 | m_PrefabAsset: {fileID: 0} 213 | m_GameObject: {fileID: 2529736697194644373} 214 | m_Enabled: 0 215 | serializedVersion: 2 216 | m_ClearFlags: 1 217 | m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} 218 | m_projectionMatrixMode: 1 219 | m_SensorSize: {x: 36, y: 24} 220 | m_LensShift: {x: 0, y: 0} 221 | m_GateFitMode: 2 222 | m_FocalLength: 50 223 | m_NormalizedViewPortRect: 224 | serializedVersion: 2 225 | x: 0 226 | y: 0 227 | width: 1 228 | height: 1 229 | near clip plane: 0.01 230 | far clip plane: 50 231 | field of view: 25 232 | orthographic: 0 233 | orthographic size: 5 234 | m_Depth: 0 235 | m_CullingMask: 236 | serializedVersion: 2 237 | m_Bits: 265731 238 | m_RenderingPath: -1 239 | m_TargetTexture: {fileID: 8400000, guid: b8077ee3d7372ca4486b7030510012a9, type: 2} 240 | m_TargetDisplay: 0 241 | m_TargetEye: 3 242 | m_HDR: 0 243 | m_AllowMSAA: 0 244 | m_AllowDynamicResolution: 0 245 | m_ForceIntoRT: 0 246 | m_OcclusionCulling: 1 247 | m_StereoConvergence: 10 248 | m_StereoSeparation: 0.022 249 | --- !u!92 &6030067664266472862 250 | Behaviour: 251 | m_ObjectHideFlags: 0 252 | m_CorrespondingSourceObject: {fileID: 0} 253 | m_PrefabInstance: {fileID: 0} 254 | m_PrefabAsset: {fileID: 0} 255 | m_GameObject: {fileID: 2529736697194644373} 256 | m_Enabled: 0 257 | --- !u!124 &3804608364812251285 258 | Behaviour: 259 | m_ObjectHideFlags: 0 260 | m_CorrespondingSourceObject: {fileID: 0} 261 | m_PrefabInstance: {fileID: 0} 262 | m_PrefabAsset: {fileID: 0} 263 | m_GameObject: {fileID: 2529736697194644373} 264 | m_Enabled: 0 265 | --- !u!1 &2788005780568987203 266 | GameObject: 267 | m_ObjectHideFlags: 0 268 | m_CorrespondingSourceObject: {fileID: 0} 269 | m_PrefabInstance: {fileID: 0} 270 | m_PrefabAsset: {fileID: 0} 271 | serializedVersion: 6 272 | m_Component: 273 | - component: {fileID: 969094022112932346} 274 | - component: {fileID: 5479934227190536745} 275 | - component: {fileID: 6239042009265261999} 276 | m_Layer: 0 277 | m_Name: Output 278 | m_TagString: Untagged 279 | m_Icon: {fileID: 0} 280 | m_NavMeshLayer: 0 281 | m_StaticEditorFlags: 0 282 | m_IsActive: 1 283 | --- !u!4 &969094022112932346 284 | Transform: 285 | m_ObjectHideFlags: 0 286 | m_CorrespondingSourceObject: {fileID: 0} 287 | m_PrefabInstance: {fileID: 0} 288 | m_PrefabAsset: {fileID: 0} 289 | m_GameObject: {fileID: 2788005780568987203} 290 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 291 | m_LocalPosition: {x: -0.1871, y: 0.136, z: 0} 292 | m_LocalScale: {x: 0.5811539, y: 0.326895, z: 0.43586} 293 | m_Children: [] 294 | m_Father: {fileID: 6598108966806013884} 295 | m_RootOrder: 1 296 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 297 | --- !u!33 &5479934227190536745 298 | MeshFilter: 299 | m_ObjectHideFlags: 0 300 | m_CorrespondingSourceObject: {fileID: 0} 301 | m_PrefabInstance: {fileID: 0} 302 | m_PrefabAsset: {fileID: 0} 303 | m_GameObject: {fileID: 2788005780568987203} 304 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 305 | --- !u!23 &6239042009265261999 306 | MeshRenderer: 307 | m_ObjectHideFlags: 0 308 | m_CorrespondingSourceObject: {fileID: 0} 309 | m_PrefabInstance: {fileID: 0} 310 | m_PrefabAsset: {fileID: 0} 311 | m_GameObject: {fileID: 2788005780568987203} 312 | m_Enabled: 1 313 | m_CastShadows: 1 314 | m_ReceiveShadows: 1 315 | m_DynamicOccludee: 1 316 | m_MotionVectors: 1 317 | m_LightProbeUsage: 1 318 | m_ReflectionProbeUsage: 1 319 | m_RenderingLayerMask: 1 320 | m_RendererPriority: 0 321 | m_Materials: 322 | - {fileID: 2100000, guid: bc3dab52cc1ec9a40bfbca0ebf39799f, type: 2} 323 | m_StaticBatchInfo: 324 | firstSubMesh: 0 325 | subMeshCount: 0 326 | m_StaticBatchRoot: {fileID: 0} 327 | m_ProbeAnchor: {fileID: 0} 328 | m_LightProbeVolumeOverride: {fileID: 0} 329 | m_ScaleInLightmap: 1 330 | m_PreserveUVs: 0 331 | m_IgnoreNormalsForChartDetection: 0 332 | m_ImportantGI: 0 333 | m_StitchLightmapSeams: 0 334 | m_SelectedEditorRenderState: 3 335 | m_MinimumChartSize: 4 336 | m_AutoUVMaxDistance: 0.5 337 | m_AutoUVMaxAngle: 89 338 | m_LightmapParameters: {fileID: 0} 339 | m_SortingLayerID: 0 340 | m_SortingLayer: 0 341 | m_SortingOrder: 0 342 | --- !u!1 &3068939469851639206 343 | GameObject: 344 | m_ObjectHideFlags: 0 345 | m_CorrespondingSourceObject: {fileID: 0} 346 | m_PrefabInstance: {fileID: 0} 347 | m_PrefabAsset: {fileID: 0} 348 | serializedVersion: 6 349 | m_Component: 350 | - component: {fileID: 267774417645637636} 351 | - component: {fileID: 1238514992972548831} 352 | - component: {fileID: 4903006114118460960} 353 | - component: {fileID: 8218622950195339179} 354 | m_Layer: 12 355 | m_Name: Camera 356 | m_TagString: Untagged 357 | m_Icon: {fileID: 0} 358 | m_NavMeshLayer: 0 359 | m_StaticEditorFlags: 0 360 | m_IsActive: 1 361 | --- !u!4 &267774417645637636 362 | Transform: 363 | m_ObjectHideFlags: 0 364 | m_CorrespondingSourceObject: {fileID: 0} 365 | m_PrefabInstance: {fileID: 0} 366 | m_PrefabAsset: {fileID: 0} 367 | m_GameObject: {fileID: 3068939469851639206} 368 | m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} 369 | m_LocalPosition: {x: 0, y: 0, z: 0.05} 370 | m_LocalScale: {x: 1, y: 1, z: 1} 371 | m_Children: [] 372 | m_Father: {fileID: 8720180731497304065} 373 | m_RootOrder: 0 374 | m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} 375 | --- !u!20 &1238514992972548831 376 | Camera: 377 | m_ObjectHideFlags: 0 378 | m_CorrespondingSourceObject: {fileID: 0} 379 | m_PrefabInstance: {fileID: 0} 380 | m_PrefabAsset: {fileID: 0} 381 | m_GameObject: {fileID: 3068939469851639206} 382 | m_Enabled: 0 383 | serializedVersion: 2 384 | m_ClearFlags: 2 385 | m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} 386 | m_projectionMatrixMode: 1 387 | m_SensorSize: {x: 36, y: 24} 388 | m_LensShift: {x: 0, y: 0} 389 | m_GateFitMode: 2 390 | m_FocalLength: 50 391 | m_NormalizedViewPortRect: 392 | serializedVersion: 2 393 | x: 0 394 | y: 0 395 | width: 1 396 | height: 1 397 | near clip plane: 0 398 | far clip plane: 0.1 399 | field of view: 60 400 | orthographic: 1 401 | orthographic size: 0.1 402 | m_Depth: 0 403 | m_CullingMask: 404 | serializedVersion: 2 405 | m_Bits: 4096 406 | m_RenderingPath: -1 407 | m_TargetTexture: {fileID: 8400000, guid: d2ace7d508fe58947b3317abd0c68cab, type: 2} 408 | m_TargetDisplay: 0 409 | m_TargetEye: 3 410 | m_HDR: 0 411 | m_AllowMSAA: 0 412 | m_AllowDynamicResolution: 0 413 | m_ForceIntoRT: 0 414 | m_OcclusionCulling: 1 415 | m_StereoConvergence: 10 416 | m_StereoSeparation: 0.022 417 | --- !u!124 &4903006114118460960 418 | Behaviour: 419 | m_ObjectHideFlags: 0 420 | m_CorrespondingSourceObject: {fileID: 0} 421 | m_PrefabInstance: {fileID: 0} 422 | m_PrefabAsset: {fileID: 0} 423 | m_GameObject: {fileID: 3068939469851639206} 424 | m_Enabled: 0 425 | --- !u!92 &8218622950195339179 426 | Behaviour: 427 | m_ObjectHideFlags: 0 428 | m_CorrespondingSourceObject: {fileID: 0} 429 | m_PrefabInstance: {fileID: 0} 430 | m_PrefabAsset: {fileID: 0} 431 | m_GameObject: {fileID: 3068939469851639206} 432 | m_Enabled: 0 433 | --- !u!1 &4993898678509924745 434 | GameObject: 435 | m_ObjectHideFlags: 0 436 | m_CorrespondingSourceObject: {fileID: 0} 437 | m_PrefabInstance: {fileID: 0} 438 | m_PrefabAsset: {fileID: 0} 439 | serializedVersion: 6 440 | m_Component: 441 | - component: {fileID: 8720180731497304065} 442 | - component: {fileID: 6079522350600655462} 443 | - component: {fileID: 2609790455394668616} 444 | m_Layer: 12 445 | m_Name: SVM 446 | m_TagString: Untagged 447 | m_Icon: {fileID: 0} 448 | m_NavMeshLayer: 0 449 | m_StaticEditorFlags: 0 450 | m_IsActive: 1 451 | --- !u!4 &8720180731497304065 452 | Transform: 453 | m_ObjectHideFlags: 0 454 | m_CorrespondingSourceObject: {fileID: 0} 455 | m_PrefabInstance: {fileID: 0} 456 | m_PrefabAsset: {fileID: 0} 457 | m_GameObject: {fileID: 4993898678509924745} 458 | m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} 459 | m_LocalPosition: {x: 0, y: 5, z: 0} 460 | m_LocalScale: {x: 1, y: 1, z: 1} 461 | m_Children: 462 | - {fileID: 267774417645637636} 463 | - {fileID: 5427487186708248913} 464 | m_Father: {fileID: 2284162462215388331} 465 | m_RootOrder: 2 466 | m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} 467 | --- !u!33 &6079522350600655462 468 | MeshFilter: 469 | m_ObjectHideFlags: 0 470 | m_CorrespondingSourceObject: {fileID: 0} 471 | m_PrefabInstance: {fileID: 0} 472 | m_PrefabAsset: {fileID: 0} 473 | m_GameObject: {fileID: 4993898678509924745} 474 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 475 | --- !u!23 &2609790455394668616 476 | MeshRenderer: 477 | m_ObjectHideFlags: 0 478 | m_CorrespondingSourceObject: {fileID: 0} 479 | m_PrefabInstance: {fileID: 0} 480 | m_PrefabAsset: {fileID: 0} 481 | m_GameObject: {fileID: 4993898678509924745} 482 | m_Enabled: 1 483 | m_CastShadows: 0 484 | m_ReceiveShadows: 0 485 | m_DynamicOccludee: 1 486 | m_MotionVectors: 1 487 | m_LightProbeUsage: 0 488 | m_ReflectionProbeUsage: 0 489 | m_RenderingLayerMask: 1 490 | m_RendererPriority: 0 491 | m_Materials: 492 | - {fileID: 2100000, guid: bb09d8804abd5844b90822c09aaa2fb8, type: 2} 493 | m_StaticBatchInfo: 494 | firstSubMesh: 0 495 | subMeshCount: 0 496 | m_StaticBatchRoot: {fileID: 0} 497 | m_ProbeAnchor: {fileID: 0} 498 | m_LightProbeVolumeOverride: {fileID: 0} 499 | m_ScaleInLightmap: 1 500 | m_PreserveUVs: 0 501 | m_IgnoreNormalsForChartDetection: 0 502 | m_ImportantGI: 0 503 | m_StitchLightmapSeams: 0 504 | m_SelectedEditorRenderState: 3 505 | m_MinimumChartSize: 4 506 | m_AutoUVMaxDistance: 0.5 507 | m_AutoUVMaxAngle: 89 508 | m_LightmapParameters: {fileID: 0} 509 | m_SortingLayerID: 0 510 | m_SortingLayer: 0 511 | m_SortingOrder: 0 512 | --- !u!1 &5656135154996691418 513 | GameObject: 514 | m_ObjectHideFlags: 0 515 | m_CorrespondingSourceObject: {fileID: 0} 516 | m_PrefabInstance: {fileID: 0} 517 | m_PrefabAsset: {fileID: 0} 518 | serializedVersion: 6 519 | m_Component: 520 | - component: {fileID: 6477452625874954739} 521 | - component: {fileID: 2697889073351259444} 522 | - component: {fileID: 710883968763514061} 523 | - component: {fileID: 2406884907757994975} 524 | m_Layer: 12 525 | m_Name: CameraLow 526 | m_TagString: Untagged 527 | m_Icon: {fileID: 0} 528 | m_NavMeshLayer: 0 529 | m_StaticEditorFlags: 0 530 | m_IsActive: 1 531 | --- !u!4 &6477452625874954739 532 | Transform: 533 | m_ObjectHideFlags: 0 534 | m_CorrespondingSourceObject: {fileID: 0} 535 | m_PrefabInstance: {fileID: 0} 536 | m_PrefabAsset: {fileID: 0} 537 | m_GameObject: {fileID: 5656135154996691418} 538 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 539 | m_LocalPosition: {x: 0, y: 0, z: 0.5} 540 | m_LocalScale: {x: 1, y: 1, z: 1} 541 | m_Children: [] 542 | m_Father: {fileID: 7159227148879841730} 543 | m_RootOrder: 1 544 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 545 | --- !u!20 &2697889073351259444 546 | Camera: 547 | m_ObjectHideFlags: 0 548 | m_CorrespondingSourceObject: {fileID: 0} 549 | m_PrefabInstance: {fileID: 0} 550 | m_PrefabAsset: {fileID: 0} 551 | m_GameObject: {fileID: 5656135154996691418} 552 | m_Enabled: 0 553 | serializedVersion: 2 554 | m_ClearFlags: 1 555 | m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} 556 | m_projectionMatrixMode: 1 557 | m_SensorSize: {x: 36, y: 24} 558 | m_LensShift: {x: 0, y: 0} 559 | m_GateFitMode: 2 560 | m_FocalLength: 50 561 | m_NormalizedViewPortRect: 562 | serializedVersion: 2 563 | x: 0 564 | y: 0 565 | width: 1 566 | height: 1 567 | near clip plane: 0.01 568 | far clip plane: 50 569 | field of view: 25 570 | orthographic: 0 571 | orthographic size: 5 572 | m_Depth: 0 573 | m_CullingMask: 574 | serializedVersion: 2 575 | m_Bits: 265731 576 | m_RenderingPath: -1 577 | m_TargetTexture: {fileID: 8400000, guid: e9cbad1ce5bc87d468664e87fe0d1708, type: 2} 578 | m_TargetDisplay: 0 579 | m_TargetEye: 3 580 | m_HDR: 0 581 | m_AllowMSAA: 0 582 | m_AllowDynamicResolution: 0 583 | m_ForceIntoRT: 0 584 | m_OcclusionCulling: 1 585 | m_StereoConvergence: 10 586 | m_StereoSeparation: 0.022 587 | --- !u!92 &710883968763514061 588 | Behaviour: 589 | m_ObjectHideFlags: 0 590 | m_CorrespondingSourceObject: {fileID: 0} 591 | m_PrefabInstance: {fileID: 0} 592 | m_PrefabAsset: {fileID: 0} 593 | m_GameObject: {fileID: 5656135154996691418} 594 | m_Enabled: 0 595 | --- !u!124 &2406884907757994975 596 | Behaviour: 597 | m_ObjectHideFlags: 0 598 | m_CorrespondingSourceObject: {fileID: 0} 599 | m_PrefabInstance: {fileID: 0} 600 | m_PrefabAsset: {fileID: 0} 601 | m_GameObject: {fileID: 5656135154996691418} 602 | m_Enabled: 0 603 | --- !u!1 &6561877404060088788 604 | GameObject: 605 | m_ObjectHideFlags: 0 606 | m_CorrespondingSourceObject: {fileID: 0} 607 | m_PrefabInstance: {fileID: 0} 608 | m_PrefabAsset: {fileID: 0} 609 | serializedVersion: 6 610 | m_Component: 611 | - component: {fileID: 4862303617566537256} 612 | - component: {fileID: 3723102877776033455} 613 | - component: {fileID: 9044324344943889340} 614 | m_Layer: 0 615 | m_Name: Cube 616 | m_TagString: Untagged 617 | m_Icon: {fileID: 0} 618 | m_NavMeshLayer: 0 619 | m_StaticEditorFlags: 0 620 | m_IsActive: 1 621 | --- !u!4 &4862303617566537256 622 | Transform: 623 | m_ObjectHideFlags: 0 624 | m_CorrespondingSourceObject: {fileID: 0} 625 | m_PrefabInstance: {fileID: 0} 626 | m_PrefabAsset: {fileID: 0} 627 | m_GameObject: {fileID: 6561877404060088788} 628 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 629 | m_LocalPosition: {x: 0, y: 0, z: 0.5} 630 | m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} 631 | m_Children: [] 632 | m_Father: {fileID: 7159227148879841730} 633 | m_RootOrder: 0 634 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 635 | --- !u!33 &3723102877776033455 636 | MeshFilter: 637 | m_ObjectHideFlags: 0 638 | m_CorrespondingSourceObject: {fileID: 0} 639 | m_PrefabInstance: {fileID: 0} 640 | m_PrefabAsset: {fileID: 0} 641 | m_GameObject: {fileID: 6561877404060088788} 642 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 643 | --- !u!23 &9044324344943889340 644 | MeshRenderer: 645 | m_ObjectHideFlags: 0 646 | m_CorrespondingSourceObject: {fileID: 0} 647 | m_PrefabInstance: {fileID: 0} 648 | m_PrefabAsset: {fileID: 0} 649 | m_GameObject: {fileID: 6561877404060088788} 650 | m_Enabled: 1 651 | m_CastShadows: 1 652 | m_ReceiveShadows: 1 653 | m_DynamicOccludee: 1 654 | m_MotionVectors: 1 655 | m_LightProbeUsage: 1 656 | m_ReflectionProbeUsage: 1 657 | m_RenderingLayerMask: 1 658 | m_RendererPriority: 0 659 | m_Materials: 660 | - {fileID: 2100000, guid: f388fc0096cc38a4bab0871068c07c93, type: 2} 661 | m_StaticBatchInfo: 662 | firstSubMesh: 0 663 | subMeshCount: 0 664 | m_StaticBatchRoot: {fileID: 0} 665 | m_ProbeAnchor: {fileID: 0} 666 | m_LightProbeVolumeOverride: {fileID: 0} 667 | m_ScaleInLightmap: 1 668 | m_PreserveUVs: 0 669 | m_IgnoreNormalsForChartDetection: 0 670 | m_ImportantGI: 0 671 | m_StitchLightmapSeams: 0 672 | m_SelectedEditorRenderState: 3 673 | m_MinimumChartSize: 4 674 | m_AutoUVMaxDistance: 0.5 675 | m_AutoUVMaxAngle: 89 676 | m_LightmapParameters: {fileID: 0} 677 | m_SortingLayerID: 0 678 | m_SortingLayer: 0 679 | m_SortingOrder: 0 680 | --- !u!1 &7065472458749201347 681 | GameObject: 682 | m_ObjectHideFlags: 0 683 | m_CorrespondingSourceObject: {fileID: 0} 684 | m_PrefabInstance: {fileID: 0} 685 | m_PrefabAsset: {fileID: 0} 686 | serializedVersion: 6 687 | m_Component: 688 | - component: {fileID: 5427487186708248913} 689 | - component: {fileID: 1510887837548204661} 690 | - component: {fileID: 7888361256116443659} 691 | m_Layer: 12 692 | m_Name: Buffer 693 | m_TagString: Untagged 694 | m_Icon: {fileID: 0} 695 | m_NavMeshLayer: 0 696 | m_StaticEditorFlags: 0 697 | m_IsActive: 1 698 | --- !u!4 &5427487186708248913 699 | Transform: 700 | m_ObjectHideFlags: 0 701 | m_CorrespondingSourceObject: {fileID: 0} 702 | m_PrefabInstance: {fileID: 0} 703 | m_PrefabAsset: {fileID: 0} 704 | m_GameObject: {fileID: 7065472458749201347} 705 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 706 | m_LocalPosition: {x: 1, y: 0, z: 0} 707 | m_LocalScale: {x: 1, y: 1, z: 1} 708 | m_Children: 709 | - {fileID: 4609193001161402218} 710 | m_Father: {fileID: 8720180731497304065} 711 | m_RootOrder: 1 712 | m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} 713 | --- !u!33 &1510887837548204661 714 | MeshFilter: 715 | m_ObjectHideFlags: 0 716 | m_CorrespondingSourceObject: {fileID: 0} 717 | m_PrefabInstance: {fileID: 0} 718 | m_PrefabAsset: {fileID: 0} 719 | m_GameObject: {fileID: 7065472458749201347} 720 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 721 | --- !u!23 &7888361256116443659 722 | MeshRenderer: 723 | m_ObjectHideFlags: 0 724 | m_CorrespondingSourceObject: {fileID: 0} 725 | m_PrefabInstance: {fileID: 0} 726 | m_PrefabAsset: {fileID: 0} 727 | m_GameObject: {fileID: 7065472458749201347} 728 | m_Enabled: 1 729 | m_CastShadows: 0 730 | m_ReceiveShadows: 0 731 | m_DynamicOccludee: 1 732 | m_MotionVectors: 1 733 | m_LightProbeUsage: 0 734 | m_ReflectionProbeUsage: 0 735 | m_RenderingLayerMask: 1 736 | m_RendererPriority: 0 737 | m_Materials: 738 | - {fileID: 2100000, guid: 05fa2f51955702b4989e08292e735754, type: 2} 739 | m_StaticBatchInfo: 740 | firstSubMesh: 0 741 | subMeshCount: 0 742 | m_StaticBatchRoot: {fileID: 0} 743 | m_ProbeAnchor: {fileID: 0} 744 | m_LightProbeVolumeOverride: {fileID: 0} 745 | m_ScaleInLightmap: 1 746 | m_PreserveUVs: 0 747 | m_IgnoreNormalsForChartDetection: 0 748 | m_ImportantGI: 0 749 | m_StitchLightmapSeams: 0 750 | m_SelectedEditorRenderState: 3 751 | m_MinimumChartSize: 4 752 | m_AutoUVMaxDistance: 0.5 753 | m_AutoUVMaxAngle: 89 754 | m_LightmapParameters: {fileID: 0} 755 | m_SortingLayerID: 0 756 | m_SortingLayer: 0 757 | m_SortingOrder: 0 758 | --- !u!1 &7332505186784487197 759 | GameObject: 760 | m_ObjectHideFlags: 0 761 | m_CorrespondingSourceObject: {fileID: 0} 762 | m_PrefabInstance: {fileID: 0} 763 | m_PrefabAsset: {fileID: 0} 764 | serializedVersion: 6 765 | m_Component: 766 | - component: {fileID: 4696620489131725132} 767 | - component: {fileID: 929344715527302102} 768 | - component: {fileID: 7358551792567656608} 769 | m_Layer: 0 770 | m_Name: Visualize 771 | m_TagString: Untagged 772 | m_Icon: {fileID: 0} 773 | m_NavMeshLayer: 0 774 | m_StaticEditorFlags: 0 775 | m_IsActive: 1 776 | --- !u!4 &4696620489131725132 777 | Transform: 778 | m_ObjectHideFlags: 0 779 | m_CorrespondingSourceObject: {fileID: 0} 780 | m_PrefabInstance: {fileID: 0} 781 | m_PrefabAsset: {fileID: 0} 782 | m_GameObject: {fileID: 7332505186784487197} 783 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 784 | m_LocalPosition: {x: -0.3775, y: -0.1489, z: 0} 785 | m_LocalScale: {x: 0.20383501, y: 0.20383501, z: 0.20383501} 786 | m_Children: [] 787 | m_Father: {fileID: 6598108966806013884} 788 | m_RootOrder: 2 789 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 790 | --- !u!33 &929344715527302102 791 | MeshFilter: 792 | m_ObjectHideFlags: 0 793 | m_CorrespondingSourceObject: {fileID: 0} 794 | m_PrefabInstance: {fileID: 0} 795 | m_PrefabAsset: {fileID: 0} 796 | m_GameObject: {fileID: 7332505186784487197} 797 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 798 | --- !u!23 &7358551792567656608 799 | MeshRenderer: 800 | m_ObjectHideFlags: 0 801 | m_CorrespondingSourceObject: {fileID: 0} 802 | m_PrefabInstance: {fileID: 0} 803 | m_PrefabAsset: {fileID: 0} 804 | m_GameObject: {fileID: 7332505186784487197} 805 | m_Enabled: 1 806 | m_CastShadows: 1 807 | m_ReceiveShadows: 1 808 | m_DynamicOccludee: 1 809 | m_MotionVectors: 1 810 | m_LightProbeUsage: 1 811 | m_ReflectionProbeUsage: 1 812 | m_RenderingLayerMask: 1 813 | m_RendererPriority: 0 814 | m_Materials: 815 | - {fileID: 2100000, guid: a763f4f95a458ed43b83c745f7e94043, type: 2} 816 | m_StaticBatchInfo: 817 | firstSubMesh: 0 818 | subMeshCount: 0 819 | m_StaticBatchRoot: {fileID: 0} 820 | m_ProbeAnchor: {fileID: 0} 821 | m_LightProbeVolumeOverride: {fileID: 0} 822 | m_ScaleInLightmap: 1 823 | m_PreserveUVs: 0 824 | m_IgnoreNormalsForChartDetection: 0 825 | m_ImportantGI: 0 826 | m_StitchLightmapSeams: 0 827 | m_SelectedEditorRenderState: 3 828 | m_MinimumChartSize: 4 829 | m_AutoUVMaxDistance: 0.5 830 | m_AutoUVMaxAngle: 89 831 | m_LightmapParameters: {fileID: 0} 832 | m_SortingLayerID: 0 833 | m_SortingLayer: 0 834 | m_SortingOrder: 0 835 | --- !u!1 &7486457945574674917 836 | GameObject: 837 | m_ObjectHideFlags: 0 838 | m_CorrespondingSourceObject: {fileID: 0} 839 | m_PrefabInstance: {fileID: 0} 840 | m_PrefabAsset: {fileID: 0} 841 | serializedVersion: 6 842 | m_Component: 843 | - component: {fileID: 6598108966806013884} 844 | - component: {fileID: 7894622812165251059} 845 | - component: {fileID: 1190083444550845469} 846 | m_Layer: 0 847 | m_Name: Presentation 848 | m_TagString: Untagged 849 | m_Icon: {fileID: 0} 850 | m_NavMeshLayer: 0 851 | m_StaticEditorFlags: 0 852 | m_IsActive: 1 853 | --- !u!4 &6598108966806013884 854 | Transform: 855 | m_ObjectHideFlags: 0 856 | m_CorrespondingSourceObject: {fileID: 0} 857 | m_PrefabInstance: {fileID: 0} 858 | m_PrefabAsset: {fileID: 0} 859 | m_GameObject: {fileID: 7486457945574674917} 860 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 861 | m_LocalPosition: {x: 1.5, y: 1, z: 0} 862 | m_LocalScale: {x: 2, y: 2, z: 2} 863 | m_Children: 864 | - {fileID: 8120527319627758773} 865 | - {fileID: 969094022112932346} 866 | - {fileID: 4696620489131725132} 867 | m_Father: {fileID: 2284162462215388331} 868 | m_RootOrder: 0 869 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 870 | --- !u!33 &7894622812165251059 871 | MeshFilter: 872 | m_ObjectHideFlags: 0 873 | m_CorrespondingSourceObject: {fileID: 0} 874 | m_PrefabInstance: {fileID: 0} 875 | m_PrefabAsset: {fileID: 0} 876 | m_GameObject: {fileID: 7486457945574674917} 877 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 878 | --- !u!23 &1190083444550845469 879 | MeshRenderer: 880 | m_ObjectHideFlags: 0 881 | m_CorrespondingSourceObject: {fileID: 0} 882 | m_PrefabInstance: {fileID: 0} 883 | m_PrefabAsset: {fileID: 0} 884 | m_GameObject: {fileID: 7486457945574674917} 885 | m_Enabled: 1 886 | m_CastShadows: 1 887 | m_ReceiveShadows: 1 888 | m_DynamicOccludee: 1 889 | m_MotionVectors: 1 890 | m_LightProbeUsage: 1 891 | m_ReflectionProbeUsage: 1 892 | m_RenderingLayerMask: 1 893 | m_RendererPriority: 0 894 | m_Materials: 895 | - {fileID: 2100000, guid: 97bea2a58c1dab5418fd6a2ca498488d, type: 2} 896 | m_StaticBatchInfo: 897 | firstSubMesh: 0 898 | subMeshCount: 0 899 | m_StaticBatchRoot: {fileID: 0} 900 | m_ProbeAnchor: {fileID: 0} 901 | m_LightProbeVolumeOverride: {fileID: 0} 902 | m_ScaleInLightmap: 1 903 | m_PreserveUVs: 0 904 | m_IgnoreNormalsForChartDetection: 0 905 | m_ImportantGI: 0 906 | m_StitchLightmapSeams: 0 907 | m_SelectedEditorRenderState: 3 908 | m_MinimumChartSize: 4 909 | m_AutoUVMaxDistance: 0.5 910 | m_AutoUVMaxAngle: 89 911 | m_LightmapParameters: {fileID: 0} 912 | m_SortingLayerID: 0 913 | m_SortingLayer: 0 914 | m_SortingOrder: 0 915 | --- !u!1 &8228725876396779172 916 | GameObject: 917 | m_ObjectHideFlags: 0 918 | m_CorrespondingSourceObject: {fileID: 0} 919 | m_PrefabInstance: {fileID: 0} 920 | m_PrefabAsset: {fileID: 0} 921 | serializedVersion: 6 922 | m_Component: 923 | - component: {fileID: 8120527319627758773} 924 | - component: {fileID: 4855672824270523067} 925 | - component: {fileID: 8332511247253798337} 926 | m_Layer: 0 927 | m_Name: Debug 928 | m_TagString: Untagged 929 | m_Icon: {fileID: 0} 930 | m_NavMeshLayer: 0 931 | m_StaticEditorFlags: 0 932 | m_IsActive: 1 933 | --- !u!4 &8120527319627758773 934 | Transform: 935 | m_ObjectHideFlags: 0 936 | m_CorrespondingSourceObject: {fileID: 0} 937 | m_PrefabInstance: {fileID: 0} 938 | m_PrefabAsset: {fileID: 0} 939 | m_GameObject: {fileID: 8228725876396779172} 940 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 941 | m_LocalPosition: {x: 1, y: 0, z: 0} 942 | m_LocalScale: {x: 1, y: 1, z: 1} 943 | m_Children: [] 944 | m_Father: {fileID: 6598108966806013884} 945 | m_RootOrder: 0 946 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 947 | --- !u!33 &4855672824270523067 948 | MeshFilter: 949 | m_ObjectHideFlags: 0 950 | m_CorrespondingSourceObject: {fileID: 0} 951 | m_PrefabInstance: {fileID: 0} 952 | m_PrefabAsset: {fileID: 0} 953 | m_GameObject: {fileID: 8228725876396779172} 954 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 955 | --- !u!23 &8332511247253798337 956 | MeshRenderer: 957 | m_ObjectHideFlags: 0 958 | m_CorrespondingSourceObject: {fileID: 0} 959 | m_PrefabInstance: {fileID: 0} 960 | m_PrefabAsset: {fileID: 0} 961 | m_GameObject: {fileID: 8228725876396779172} 962 | m_Enabled: 1 963 | m_CastShadows: 1 964 | m_ReceiveShadows: 1 965 | m_DynamicOccludee: 1 966 | m_MotionVectors: 1 967 | m_LightProbeUsage: 1 968 | m_ReflectionProbeUsage: 1 969 | m_RenderingLayerMask: 1 970 | m_RendererPriority: 0 971 | m_Materials: 972 | - {fileID: 2100000, guid: 9d69614ebc9ebe44ca970bd59e0bdc8a, type: 2} 973 | m_StaticBatchInfo: 974 | firstSubMesh: 0 975 | subMeshCount: 0 976 | m_StaticBatchRoot: {fileID: 0} 977 | m_ProbeAnchor: {fileID: 0} 978 | m_LightProbeVolumeOverride: {fileID: 0} 979 | m_ScaleInLightmap: 1 980 | m_PreserveUVs: 0 981 | m_IgnoreNormalsForChartDetection: 0 982 | m_ImportantGI: 0 983 | m_StitchLightmapSeams: 0 984 | m_SelectedEditorRenderState: 3 985 | m_MinimumChartSize: 4 986 | m_AutoUVMaxDistance: 0.5 987 | m_AutoUVMaxAngle: 89 988 | m_LightmapParameters: {fileID: 0} 989 | m_SortingLayerID: 0 990 | m_SortingLayer: 0 991 | m_SortingOrder: 0 992 | --- !u!1 &8796077259913670744 993 | GameObject: 994 | m_ObjectHideFlags: 0 995 | m_CorrespondingSourceObject: {fileID: 0} 996 | m_PrefabInstance: {fileID: 0} 997 | m_PrefabAsset: {fileID: 0} 998 | serializedVersion: 6 999 | m_Component: 1000 | - component: {fileID: 2284162462215388331} 1001 | - component: {fileID: 4379760073376982565} 1002 | m_Layer: 0 1003 | m_Name: SVMDetectorPrefab 1004 | m_TagString: Untagged 1005 | m_Icon: {fileID: 0} 1006 | m_NavMeshLayer: 0 1007 | m_StaticEditorFlags: 0 1008 | m_IsActive: 1 1009 | --- !u!4 &2284162462215388331 1010 | Transform: 1011 | m_ObjectHideFlags: 0 1012 | m_CorrespondingSourceObject: {fileID: 0} 1013 | m_PrefabInstance: {fileID: 0} 1014 | m_PrefabAsset: {fileID: 0} 1015 | m_GameObject: {fileID: 8796077259913670744} 1016 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1017 | m_LocalPosition: {x: 0, y: 0, z: 2} 1018 | m_LocalScale: {x: 1, y: 1, z: 1} 1019 | m_Children: 1020 | - {fileID: 6598108966806013884} 1021 | - {fileID: 7159227148879841730} 1022 | - {fileID: 8720180731497304065} 1023 | m_Father: {fileID: 0} 1024 | m_RootOrder: 0 1025 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1026 | --- !u!95 &4379760073376982565 1027 | Animator: 1028 | serializedVersion: 3 1029 | m_ObjectHideFlags: 0 1030 | m_CorrespondingSourceObject: {fileID: 0} 1031 | m_PrefabInstance: {fileID: 0} 1032 | m_PrefabAsset: {fileID: 0} 1033 | m_GameObject: {fileID: 8796077259913670744} 1034 | m_Enabled: 1 1035 | m_Avatar: {fileID: 0} 1036 | m_Controller: {fileID: 9100000, guid: 4ac43a6b4e4f6e848842d58441abab73, type: 2} 1037 | m_CullingMode: 0 1038 | m_UpdateMode: 0 1039 | m_ApplyRootMotion: 0 1040 | m_LinearVelocityBlending: 0 1041 | m_WarningMessage: 1042 | m_HasTransformHierarchy: 1 1043 | m_AllowConstantClipSamplingOptimization: 1 1044 | m_KeepAnimatorControllerStateOnDisable: 0 1045 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Prefab/SVMDetectorPrefab.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eba9ce7734c8ee14cbb184976ed0fe7c 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Scene.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 00bd7a55f61f27f488bdef7f49322efb 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Scene/SVM Scene.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9e6d7abfdbe2fe4db6769e5226b2532 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Scene/SVM Scene.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 9 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 0 28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} 29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} 30 | m_HaloStrength: 0.5 31 | m_FlareStrength: 1 32 | m_FlareFadeSpeed: 3 33 | m_HaloTexture: {fileID: 0} 34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 35 | m_DefaultReflectionMode: 0 36 | m_DefaultReflectionResolution: 128 37 | m_ReflectionBounces: 1 38 | m_ReflectionIntensity: 1 39 | m_CustomReflection: {fileID: 0} 40 | m_Sun: {fileID: 170076734} 41 | m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} 42 | m_UseRadianceAmbientProbe: 0 43 | --- !u!157 &3 44 | LightmapSettings: 45 | m_ObjectHideFlags: 0 46 | serializedVersion: 11 47 | m_GIWorkflowMode: 1 48 | m_GISettings: 49 | serializedVersion: 2 50 | m_BounceScale: 1 51 | m_IndirectOutputScale: 1 52 | m_AlbedoBoost: 1 53 | m_EnvironmentLightingMode: 0 54 | m_EnableBakedLightmaps: 1 55 | m_EnableRealtimeLightmaps: 0 56 | m_LightmapEditorSettings: 57 | serializedVersion: 10 58 | m_Resolution: 2 59 | m_BakeResolution: 10 60 | m_AtlasSize: 512 61 | m_AO: 0 62 | m_AOMaxDistance: 1 63 | m_CompAOExponent: 1 64 | m_CompAOExponentDirect: 0 65 | m_Padding: 2 66 | m_LightmapParameters: {fileID: 0} 67 | m_LightmapsBakeMode: 1 68 | m_TextureCompression: 1 69 | m_FinalGather: 0 70 | m_FinalGatherFiltering: 1 71 | m_FinalGatherRayCount: 256 72 | m_ReflectionCompression: 2 73 | m_MixedBakeMode: 0 74 | m_BakeBackend: 1 75 | m_PVRSampling: 1 76 | m_PVRDirectSampleCount: 32 77 | m_PVRSampleCount: 256 78 | m_PVRBounces: 2 79 | m_PVRFilterTypeDirect: 0 80 | m_PVRFilterTypeIndirect: 0 81 | m_PVRFilterTypeAO: 0 82 | m_PVRFilteringMode: 1 83 | m_PVRCulling: 1 84 | m_PVRFilteringGaussRadiusDirect: 1 85 | m_PVRFilteringGaussRadiusIndirect: 5 86 | m_PVRFilteringGaussRadiusAO: 2 87 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 88 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 89 | m_PVRFilteringAtrousPositionSigmaAO: 1 90 | m_ShowResolutionOverlay: 1 91 | m_LightingDataAsset: {fileID: 112000000, guid: 3ad927781ea687547a23aea152a42950, 92 | type: 2} 93 | m_UseShadowmask: 0 94 | --- !u!196 &4 95 | NavMeshSettings: 96 | serializedVersion: 2 97 | m_ObjectHideFlags: 0 98 | m_BuildSettings: 99 | serializedVersion: 2 100 | agentTypeID: 0 101 | agentRadius: 0.5 102 | agentHeight: 2 103 | agentSlope: 45 104 | agentClimb: 0.4 105 | ledgeDropHeight: 0 106 | maxJumpAcrossDistance: 0 107 | minRegionArea: 2 108 | manualCellSize: 0 109 | cellSize: 0.16666667 110 | manualTileSize: 0 111 | tileSize: 256 112 | accuratePlacement: 0 113 | debug: 114 | m_Flags: 0 115 | m_NavMeshData: {fileID: 0} 116 | --- !u!1 &47887865 117 | GameObject: 118 | m_ObjectHideFlags: 0 119 | m_CorrespondingSourceObject: {fileID: 0} 120 | m_PrefabInstance: {fileID: 0} 121 | m_PrefabAsset: {fileID: 0} 122 | serializedVersion: 6 123 | m_Component: 124 | - component: {fileID: 47887868} 125 | - component: {fileID: 47887867} 126 | - component: {fileID: 47887866} 127 | m_Layer: 0 128 | m_Name: TestImage 129 | m_TagString: Untagged 130 | m_Icon: {fileID: 0} 131 | m_NavMeshLayer: 0 132 | m_StaticEditorFlags: 0 133 | m_IsActive: 1 134 | --- !u!23 &47887866 135 | MeshRenderer: 136 | m_ObjectHideFlags: 0 137 | m_CorrespondingSourceObject: {fileID: 0} 138 | m_PrefabInstance: {fileID: 0} 139 | m_PrefabAsset: {fileID: 0} 140 | m_GameObject: {fileID: 47887865} 141 | m_Enabled: 1 142 | m_CastShadows: 1 143 | m_ReceiveShadows: 1 144 | m_DynamicOccludee: 1 145 | m_MotionVectors: 1 146 | m_LightProbeUsage: 1 147 | m_ReflectionProbeUsage: 1 148 | m_RenderingLayerMask: 1 149 | m_RendererPriority: 0 150 | m_Materials: 151 | - {fileID: 2100000, guid: deece38c82bf60d4c879cbc2d281885a, type: 2} 152 | m_StaticBatchInfo: 153 | firstSubMesh: 0 154 | subMeshCount: 0 155 | m_StaticBatchRoot: {fileID: 0} 156 | m_ProbeAnchor: {fileID: 0} 157 | m_LightProbeVolumeOverride: {fileID: 0} 158 | m_ScaleInLightmap: 1 159 | m_PreserveUVs: 0 160 | m_IgnoreNormalsForChartDetection: 0 161 | m_ImportantGI: 0 162 | m_StitchLightmapSeams: 0 163 | m_SelectedEditorRenderState: 3 164 | m_MinimumChartSize: 4 165 | m_AutoUVMaxDistance: 0.5 166 | m_AutoUVMaxAngle: 89 167 | m_LightmapParameters: {fileID: 0} 168 | m_SortingLayerID: 0 169 | m_SortingLayer: 0 170 | m_SortingOrder: 0 171 | --- !u!33 &47887867 172 | MeshFilter: 173 | m_ObjectHideFlags: 0 174 | m_CorrespondingSourceObject: {fileID: 0} 175 | m_PrefabInstance: {fileID: 0} 176 | m_PrefabAsset: {fileID: 0} 177 | m_GameObject: {fileID: 47887865} 178 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 179 | --- !u!4 &47887868 180 | Transform: 181 | m_ObjectHideFlags: 0 182 | m_CorrespondingSourceObject: {fileID: 0} 183 | m_PrefabInstance: {fileID: 0} 184 | m_PrefabAsset: {fileID: 0} 185 | m_GameObject: {fileID: 47887865} 186 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 187 | m_LocalPosition: {x: -0.634, y: 0.972, z: 1.992} 188 | m_LocalScale: {x: 2, y: 1, z: 1} 189 | m_Children: [] 190 | m_Father: {fileID: 0} 191 | m_RootOrder: 4 192 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 193 | --- !u!1 &170076733 194 | GameObject: 195 | m_ObjectHideFlags: 0 196 | m_CorrespondingSourceObject: {fileID: 0} 197 | m_PrefabInstance: {fileID: 0} 198 | m_PrefabAsset: {fileID: 0} 199 | serializedVersion: 6 200 | m_Component: 201 | - component: {fileID: 170076735} 202 | - component: {fileID: 170076734} 203 | m_Layer: 0 204 | m_Name: Directional Light 205 | m_TagString: Untagged 206 | m_Icon: {fileID: 0} 207 | m_NavMeshLayer: 0 208 | m_StaticEditorFlags: 0 209 | m_IsActive: 1 210 | --- !u!108 &170076734 211 | Light: 212 | m_ObjectHideFlags: 0 213 | m_CorrespondingSourceObject: {fileID: 0} 214 | m_PrefabInstance: {fileID: 0} 215 | m_PrefabAsset: {fileID: 0} 216 | m_GameObject: {fileID: 170076733} 217 | m_Enabled: 1 218 | serializedVersion: 8 219 | m_Type: 1 220 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} 221 | m_Intensity: 0.8 222 | m_Range: 10 223 | m_SpotAngle: 30 224 | m_CookieSize: 10 225 | m_Shadows: 226 | m_Type: 2 227 | m_Resolution: -1 228 | m_CustomResolution: -1 229 | m_Strength: 1 230 | m_Bias: 0.05 231 | m_NormalBias: 0.4 232 | m_NearPlane: 0.2 233 | m_Cookie: {fileID: 0} 234 | m_DrawHalo: 0 235 | m_Flare: {fileID: 0} 236 | m_RenderMode: 0 237 | m_CullingMask: 238 | serializedVersion: 2 239 | m_Bits: 4294967295 240 | m_Lightmapping: 2 241 | m_LightShadowCasterMode: 0 242 | m_AreaSize: {x: 1, y: 1} 243 | m_BounceIntensity: 1 244 | m_ColorTemperature: 6570 245 | m_UseColorTemperature: 0 246 | m_ShadowRadius: 0 247 | m_ShadowAngle: 0 248 | --- !u!4 &170076735 249 | Transform: 250 | m_ObjectHideFlags: 0 251 | m_CorrespondingSourceObject: {fileID: 0} 252 | m_PrefabInstance: {fileID: 0} 253 | m_PrefabAsset: {fileID: 0} 254 | m_GameObject: {fileID: 170076733} 255 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} 256 | m_LocalPosition: {x: 0, y: 3, z: 0} 257 | m_LocalScale: {x: 1, y: 1, z: 1} 258 | m_Children: [] 259 | m_Father: {fileID: 0} 260 | m_RootOrder: 1 261 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} 262 | --- !u!1 &534669902 263 | GameObject: 264 | m_ObjectHideFlags: 0 265 | m_CorrespondingSourceObject: {fileID: 0} 266 | m_PrefabInstance: {fileID: 0} 267 | m_PrefabAsset: {fileID: 0} 268 | serializedVersion: 6 269 | m_Component: 270 | - component: {fileID: 534669905} 271 | - component: {fileID: 534669904} 272 | - component: {fileID: 534669903} 273 | m_Layer: 0 274 | m_Name: Main Camera 275 | m_TagString: MainCamera 276 | m_Icon: {fileID: 0} 277 | m_NavMeshLayer: 0 278 | m_StaticEditorFlags: 0 279 | m_IsActive: 1 280 | --- !u!81 &534669903 281 | AudioListener: 282 | m_ObjectHideFlags: 0 283 | m_CorrespondingSourceObject: {fileID: 0} 284 | m_PrefabInstance: {fileID: 0} 285 | m_PrefabAsset: {fileID: 0} 286 | m_GameObject: {fileID: 534669902} 287 | m_Enabled: 1 288 | --- !u!20 &534669904 289 | Camera: 290 | m_ObjectHideFlags: 0 291 | m_CorrespondingSourceObject: {fileID: 0} 292 | m_PrefabInstance: {fileID: 0} 293 | m_PrefabAsset: {fileID: 0} 294 | m_GameObject: {fileID: 534669902} 295 | m_Enabled: 1 296 | serializedVersion: 2 297 | m_ClearFlags: 1 298 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} 299 | m_projectionMatrixMode: 1 300 | m_SensorSize: {x: 36, y: 24} 301 | m_LensShift: {x: 0, y: 0} 302 | m_GateFitMode: 2 303 | m_FocalLength: 50 304 | m_NormalizedViewPortRect: 305 | serializedVersion: 2 306 | x: 0 307 | y: 0 308 | width: 1 309 | height: 1 310 | near clip plane: 0.3 311 | far clip plane: 1000 312 | field of view: 60 313 | orthographic: 0 314 | orthographic size: 5 315 | m_Depth: -1 316 | m_CullingMask: 317 | serializedVersion: 2 318 | m_Bits: 4294967295 319 | m_RenderingPath: -1 320 | m_TargetTexture: {fileID: 0} 321 | m_TargetDisplay: 0 322 | m_TargetEye: 3 323 | m_HDR: 1 324 | m_AllowMSAA: 1 325 | m_AllowDynamicResolution: 0 326 | m_ForceIntoRT: 0 327 | m_OcclusionCulling: 1 328 | m_StereoConvergence: 10 329 | m_StereoSeparation: 0.022 330 | --- !u!4 &534669905 331 | Transform: 332 | m_ObjectHideFlags: 0 333 | m_CorrespondingSourceObject: {fileID: 0} 334 | m_PrefabInstance: {fileID: 0} 335 | m_PrefabAsset: {fileID: 0} 336 | m_GameObject: {fileID: 534669902} 337 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 338 | m_LocalPosition: {x: 0, y: 1, z: -10} 339 | m_LocalScale: {x: 1, y: 1, z: 1} 340 | m_Children: [] 341 | m_Father: {fileID: 0} 342 | m_RootOrder: 0 343 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 344 | --- !u!1 &769947367 345 | GameObject: 346 | m_ObjectHideFlags: 0 347 | m_CorrespondingSourceObject: {fileID: 0} 348 | m_PrefabInstance: {fileID: 0} 349 | m_PrefabAsset: {fileID: 0} 350 | serializedVersion: 6 351 | m_Component: 352 | - component: {fileID: 769947368} 353 | - component: {fileID: 769947369} 354 | m_Layer: 0 355 | m_Name: Probes 356 | m_TagString: Untagged 357 | m_Icon: {fileID: 0} 358 | m_NavMeshLayer: 0 359 | m_StaticEditorFlags: 0 360 | m_IsActive: 1 361 | --- !u!4 &769947368 362 | Transform: 363 | m_ObjectHideFlags: 0 364 | m_CorrespondingSourceObject: {fileID: 0} 365 | m_PrefabInstance: {fileID: 0} 366 | m_PrefabAsset: {fileID: 0} 367 | m_GameObject: {fileID: 769947367} 368 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 369 | m_LocalPosition: {x: 0, y: 0, z: 0} 370 | m_LocalScale: {x: 2, y: 1, z: 2} 371 | m_Children: [] 372 | m_Father: {fileID: 2108457044} 373 | m_RootOrder: 1 374 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 375 | --- !u!220 &769947369 376 | LightProbeGroup: 377 | m_ObjectHideFlags: 0 378 | m_CorrespondingSourceObject: {fileID: 0} 379 | m_PrefabInstance: {fileID: 0} 380 | m_PrefabAsset: {fileID: 0} 381 | m_GameObject: {fileID: 769947367} 382 | m_Enabled: 1 383 | m_SourcePositions: 384 | - {x: 1, y: 2.6183348, z: 1} 385 | - {x: 1, y: 2.6183348, z: -1} 386 | - {x: 1, y: 0.6183348, z: 1} 387 | - {x: 1, y: 0.6183348, z: -1} 388 | - {x: -1, y: 2.6183348, z: 1} 389 | - {x: -1, y: 2.6183348, z: -1} 390 | - {x: -1, y: 0.6183348, z: 1} 391 | - {x: -1, y: 0.6183348, z: -1} 392 | m_Dering: 0 393 | --- !u!1 &1513822969 394 | GameObject: 395 | m_ObjectHideFlags: 0 396 | m_CorrespondingSourceObject: {fileID: 0} 397 | m_PrefabInstance: {fileID: 0} 398 | m_PrefabAsset: {fileID: 0} 399 | serializedVersion: 6 400 | m_Component: 401 | - component: {fileID: 1513822970} 402 | m_Layer: 0 403 | m_Name: Spawn 404 | m_TagString: Untagged 405 | m_Icon: {fileID: 0} 406 | m_NavMeshLayer: 0 407 | m_StaticEditorFlags: 0 408 | m_IsActive: 1 409 | --- !u!4 &1513822970 410 | Transform: 411 | m_ObjectHideFlags: 0 412 | m_CorrespondingSourceObject: {fileID: 0} 413 | m_PrefabInstance: {fileID: 0} 414 | m_PrefabAsset: {fileID: 0} 415 | m_GameObject: {fileID: 1513822969} 416 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 417 | m_LocalPosition: {x: 0, y: 0, z: 0} 418 | m_LocalScale: {x: 1, y: 1, z: 1} 419 | m_Children: [] 420 | m_Father: {fileID: 2108457044} 421 | m_RootOrder: 2 422 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 423 | --- !u!1 &2002689284 424 | GameObject: 425 | m_ObjectHideFlags: 0 426 | m_CorrespondingSourceObject: {fileID: 0} 427 | m_PrefabInstance: {fileID: 0} 428 | m_PrefabAsset: {fileID: 0} 429 | serializedVersion: 6 430 | m_Component: 431 | - component: {fileID: 2002689288} 432 | - component: {fileID: 2002689287} 433 | - component: {fileID: 2002689286} 434 | - component: {fileID: 2002689285} 435 | m_Layer: 0 436 | m_Name: Plane 437 | m_TagString: Untagged 438 | m_Icon: {fileID: 0} 439 | m_NavMeshLayer: 0 440 | m_StaticEditorFlags: 4294967295 441 | m_IsActive: 1 442 | --- !u!64 &2002689285 443 | MeshCollider: 444 | m_ObjectHideFlags: 0 445 | m_CorrespondingSourceObject: {fileID: 0} 446 | m_PrefabInstance: {fileID: 0} 447 | m_PrefabAsset: {fileID: 0} 448 | m_GameObject: {fileID: 2002689284} 449 | m_Material: {fileID: 0} 450 | m_IsTrigger: 0 451 | m_Enabled: 1 452 | serializedVersion: 3 453 | m_Convex: 0 454 | m_CookingOptions: 14 455 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 456 | --- !u!23 &2002689286 457 | MeshRenderer: 458 | m_ObjectHideFlags: 0 459 | m_CorrespondingSourceObject: {fileID: 0} 460 | m_PrefabInstance: {fileID: 0} 461 | m_PrefabAsset: {fileID: 0} 462 | m_GameObject: {fileID: 2002689284} 463 | m_Enabled: 1 464 | m_CastShadows: 1 465 | m_ReceiveShadows: 1 466 | m_DynamicOccludee: 1 467 | m_MotionVectors: 1 468 | m_LightProbeUsage: 1 469 | m_ReflectionProbeUsage: 1 470 | m_RenderingLayerMask: 1 471 | m_RendererPriority: 0 472 | m_Materials: 473 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} 474 | m_StaticBatchInfo: 475 | firstSubMesh: 0 476 | subMeshCount: 0 477 | m_StaticBatchRoot: {fileID: 0} 478 | m_ProbeAnchor: {fileID: 0} 479 | m_LightProbeVolumeOverride: {fileID: 0} 480 | m_ScaleInLightmap: 1 481 | m_PreserveUVs: 0 482 | m_IgnoreNormalsForChartDetection: 0 483 | m_ImportantGI: 0 484 | m_StitchLightmapSeams: 0 485 | m_SelectedEditorRenderState: 3 486 | m_MinimumChartSize: 4 487 | m_AutoUVMaxDistance: 0.5 488 | m_AutoUVMaxAngle: 89 489 | m_LightmapParameters: {fileID: 0} 490 | m_SortingLayerID: 0 491 | m_SortingLayer: 0 492 | m_SortingOrder: 0 493 | --- !u!33 &2002689287 494 | MeshFilter: 495 | m_ObjectHideFlags: 0 496 | m_CorrespondingSourceObject: {fileID: 0} 497 | m_PrefabInstance: {fileID: 0} 498 | m_PrefabAsset: {fileID: 0} 499 | m_GameObject: {fileID: 2002689284} 500 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 501 | --- !u!4 &2002689288 502 | Transform: 503 | m_ObjectHideFlags: 0 504 | m_CorrespondingSourceObject: {fileID: 0} 505 | m_PrefabInstance: {fileID: 0} 506 | m_PrefabAsset: {fileID: 0} 507 | m_GameObject: {fileID: 2002689284} 508 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 509 | m_LocalPosition: {x: 0, y: 0, z: 0} 510 | m_LocalScale: {x: 100, y: 100, z: 100} 511 | m_Children: [] 512 | m_Father: {fileID: 2108457044} 513 | m_RootOrder: 0 514 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 515 | --- !u!1 &2108457043 516 | GameObject: 517 | m_ObjectHideFlags: 0 518 | m_CorrespondingSourceObject: {fileID: 0} 519 | m_PrefabInstance: {fileID: 0} 520 | m_PrefabAsset: {fileID: 0} 521 | serializedVersion: 6 522 | m_Component: 523 | - component: {fileID: 2108457044} 524 | - component: {fileID: 2108457046} 525 | - component: {fileID: 2108457045} 526 | m_Layer: 0 527 | m_Name: World 528 | m_TagString: Untagged 529 | m_Icon: {fileID: 0} 530 | m_NavMeshLayer: 0 531 | m_StaticEditorFlags: 0 532 | m_IsActive: 1 533 | --- !u!4 &2108457044 534 | Transform: 535 | m_ObjectHideFlags: 0 536 | m_CorrespondingSourceObject: {fileID: 0} 537 | m_PrefabInstance: {fileID: 0} 538 | m_PrefabAsset: {fileID: 0} 539 | m_GameObject: {fileID: 2108457043} 540 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 541 | m_LocalPosition: {x: 0, y: 0, z: 0} 542 | m_LocalScale: {x: 1, y: 1, z: 1} 543 | m_Children: 544 | - {fileID: 2002689288} 545 | - {fileID: 769947368} 546 | - {fileID: 1513822970} 547 | m_Father: {fileID: 0} 548 | m_RootOrder: 3 549 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 550 | --- !u!114 &2108457045 551 | MonoBehaviour: 552 | m_ObjectHideFlags: 0 553 | m_CorrespondingSourceObject: {fileID: 0} 554 | m_PrefabInstance: {fileID: 0} 555 | m_PrefabAsset: {fileID: 0} 556 | m_GameObject: {fileID: 2108457043} 557 | m_Enabled: 1 558 | m_EditorHideFlags: 0 559 | m_Script: {fileID: -1427037861, guid: 4ecd63eff847044b68db9453ce219299, type: 3} 560 | m_Name: 561 | m_EditorClassIdentifier: 562 | launchedFromSDKPipeline: 0 563 | completedSDKPipeline: 1 564 | blueprintId: 565 | contentType: 0 566 | assetBundleUnityVersion: 567 | --- !u!114 &2108457046 568 | MonoBehaviour: 569 | m_ObjectHideFlags: 0 570 | m_CorrespondingSourceObject: {fileID: 0} 571 | m_PrefabInstance: {fileID: 0} 572 | m_PrefabAsset: {fileID: 0} 573 | m_GameObject: {fileID: 2108457043} 574 | m_Enabled: 1 575 | m_EditorHideFlags: 0 576 | m_Script: {fileID: -941107182, guid: f78c4655b33cb5741983dc02e08899cf, type: 3} 577 | m_Name: 578 | m_EditorClassIdentifier: 579 | spawns: 580 | - {fileID: 1513822970} 581 | spawnOrder: 2 582 | spawnOrientation: 0 583 | ReferenceCamera: {fileID: 0} 584 | RespawnHeightY: -100 585 | ObjectBehaviourAtRespawnHeight: 0 586 | ForbidUserPortals: 0 587 | autoSpatializeAudioSources: 0 588 | gravity: {x: 0, y: -9.81, z: 0} 589 | layerCollisionArr: 590 | capacity: 0 591 | contentSex: 0 592 | contentViolence: 0 593 | contentGore: 0 594 | contentOther: 0 595 | releasePublic: 0 596 | unityVersion: 597 | Name: 598 | NSFW: 0 599 | SpawnPosition: {x: 0, y: 0, z: 0} 600 | SpawnLocation: {fileID: 0} 601 | DrawDistance: 0 602 | useAssignedLayers: 0 603 | DynamicPrefabs: [] 604 | DynamicMaterials: [] 605 | LightMapsNear: [] 606 | LightMapsFar: [] 607 | LightMode: 0 608 | RenderAmbientEquatorColor: {r: 0, g: 0, b: 0, a: 0} 609 | RenderAmbientGroundColor: {r: 0, g: 0, b: 0, a: 0} 610 | RenderAmbientIntensity: 0 611 | RenderAmbientLight: {r: 0, g: 0, b: 0, a: 0} 612 | RenderAmbientMode: 0 613 | RenderAmbientSkyColor: {r: 0, g: 0, b: 0, a: 0} 614 | RenderFog: 0 615 | RenderFogColor: {r: 0, g: 0, b: 0, a: 0} 616 | RenderFogMode: 0 617 | RenderFogDensity: 0 618 | RenderFogLinearStart: 0 619 | RenderFogLinearEnd: 0 620 | RenderHaloStrength: 0 621 | RenderFlareFadeSpeed: 0 622 | RenderFlareStrength: 0 623 | RenderCustomReflection: {fileID: 0} 624 | RenderDefaultReflectionMode: 0 625 | RenderDefaultReflectionResolution: 0 626 | RenderReflectionBounces: 0 627 | RenderReflectionIntensity: 0 628 | RenderSkybox: {fileID: 0} 629 | portraitCameraPositionOffset: {x: 0, y: 0, z: 0} 630 | portraitCameraRotationOffset: {x: 0, y: 1, z: 0, w: -0.00000004371139} 631 | --- !u!1001 &5075613117369572884 632 | PrefabInstance: 633 | m_ObjectHideFlags: 0 634 | serializedVersion: 2 635 | m_Modification: 636 | m_TransformParent: {fileID: 0} 637 | m_Modifications: 638 | - target: {fileID: 2284162462215388331, guid: eba9ce7734c8ee14cbb184976ed0fe7c, 639 | type: 3} 640 | propertyPath: m_LocalPosition.x 641 | value: 0 642 | objectReference: {fileID: 0} 643 | - target: {fileID: 2284162462215388331, guid: eba9ce7734c8ee14cbb184976ed0fe7c, 644 | type: 3} 645 | propertyPath: m_LocalPosition.y 646 | value: 0 647 | objectReference: {fileID: 0} 648 | - target: {fileID: 2284162462215388331, guid: eba9ce7734c8ee14cbb184976ed0fe7c, 649 | type: 3} 650 | propertyPath: m_LocalPosition.z 651 | value: 2 652 | objectReference: {fileID: 0} 653 | - target: {fileID: 2284162462215388331, guid: eba9ce7734c8ee14cbb184976ed0fe7c, 654 | type: 3} 655 | propertyPath: m_LocalRotation.x 656 | value: 0 657 | objectReference: {fileID: 0} 658 | - target: {fileID: 2284162462215388331, guid: eba9ce7734c8ee14cbb184976ed0fe7c, 659 | type: 3} 660 | propertyPath: m_LocalRotation.y 661 | value: 0 662 | objectReference: {fileID: 0} 663 | - target: {fileID: 2284162462215388331, guid: eba9ce7734c8ee14cbb184976ed0fe7c, 664 | type: 3} 665 | propertyPath: m_LocalRotation.z 666 | value: 0 667 | objectReference: {fileID: 0} 668 | - target: {fileID: 2284162462215388331, guid: eba9ce7734c8ee14cbb184976ed0fe7c, 669 | type: 3} 670 | propertyPath: m_LocalRotation.w 671 | value: 1 672 | objectReference: {fileID: 0} 673 | - target: {fileID: 2284162462215388331, guid: eba9ce7734c8ee14cbb184976ed0fe7c, 674 | type: 3} 675 | propertyPath: m_RootOrder 676 | value: 2 677 | objectReference: {fileID: 0} 678 | - target: {fileID: 2284162462215388331, guid: eba9ce7734c8ee14cbb184976ed0fe7c, 679 | type: 3} 680 | propertyPath: m_LocalEulerAnglesHint.x 681 | value: 0 682 | objectReference: {fileID: 0} 683 | - target: {fileID: 2284162462215388331, guid: eba9ce7734c8ee14cbb184976ed0fe7c, 684 | type: 3} 685 | propertyPath: m_LocalEulerAnglesHint.y 686 | value: 0 687 | objectReference: {fileID: 0} 688 | - target: {fileID: 2284162462215388331, guid: eba9ce7734c8ee14cbb184976ed0fe7c, 689 | type: 3} 690 | propertyPath: m_LocalEulerAnglesHint.z 691 | value: 0 692 | objectReference: {fileID: 0} 693 | - target: {fileID: 8796077259913670744, guid: eba9ce7734c8ee14cbb184976ed0fe7c, 694 | type: 3} 695 | propertyPath: m_Name 696 | value: SVMDetectorPrefab 697 | objectReference: {fileID: 0} 698 | m_RemovedComponents: [] 699 | m_SourcePrefab: {fileID: 100100000, guid: eba9ce7734c8ee14cbb184976ed0fe7c, type: 3} 700 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Scene/SVM Scene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fd5c8f4c892287a4299f14db41846ddc 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Scene/SVM Scene/LightingData.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/Assets/SVM Detector/Scene/SVM Scene/LightingData.asset -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Scene/SVM Scene/LightingData.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ad927781ea687547a23aea152a42950 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 112000000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Scene/SVM Scene/Lightmap-0_comp_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/Assets/SVM Detector/Scene/SVM Scene/Lightmap-0_comp_dir.png -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Scene/SVM Scene/Lightmap-0_comp_dir.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c64c2565654f01d40bac048c5561f49e 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 9 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 0 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: 1 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: 3 36 | mipBias: 0 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: 2 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 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Scene/SVM Scene/Lightmap-0_comp_light.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/Assets/SVM Detector/Scene/SVM Scene/Lightmap-0_comp_light.exr -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Scene/SVM Scene/Lightmap-0_comp_light.exr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c3d442fd246fb3b47a7041a963bfc5b6 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 9 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: 1 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: 3 36 | mipBias: 0 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: 0 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 6 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: 2 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 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Scene/SVM Scene/ReflectionProbe-0.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/Assets/SVM Detector/Scene/SVM Scene/ReflectionProbe-0.exr -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Scene/SVM Scene/ReflectionProbe-0.exr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 43c003461f7adae4a94b64fab05d5c63 3 | TextureImporter: 4 | fileIDToRecycleName: 5 | 8900000: generatedCubemap 6 | externalObjects: {} 7 | serializedVersion: 9 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapsPreserveCoverage: 0 16 | alphaTestReferenceValue: 0.5 17 | mipMapFadeDistanceStart: 1 18 | mipMapFadeDistanceEnd: 3 19 | bumpmap: 20 | convertToNormalMap: 0 21 | externalNormalMap: 0 22 | heightScale: 0.25 23 | normalMapFilter: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 1 30 | seamlessCubemap: 1 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: 2 36 | aniso: 0 37 | mipBias: 0 38 | wrapU: 1 39 | wrapV: 1 40 | wrapW: 1 41 | nPOTScale: 1 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 0 54 | spriteTessellationDetail: -1 55 | textureType: 0 56 | textureShape: 2 57 | singleChannelComponent: 0 58 | maxTextureSizeSet: 0 59 | compressionQualitySet: 0 60 | textureFormatSet: 0 61 | platformSettings: 62 | - serializedVersion: 2 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 2048 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 100 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | spriteSheet: 74 | serializedVersion: 2 75 | sprites: [] 76 | outline: [] 77 | physicsShape: [] 78 | bones: [] 79 | spriteID: 80 | vertices: [] 81 | indices: 82 | edges: [] 83 | weights: [] 84 | spritePackingTag: 85 | pSDRemoveMatte: 0 86 | pSDShowRemoveMatteOption: 0 87 | userData: 88 | assetBundleName: 89 | assetBundleVariant: 90 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Shaders.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 34745668f817b3344b261d752998a2b3 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Shaders/buffer.shader: -------------------------------------------------------------------------------- 1 | Shader "SVM Detector/buffer" 2 | { 3 | Properties 4 | { 5 | _MainTex ("Texture", 2D) = "black" {} 6 | _MaxDist ("Max Distance", Float) = 0.1 7 | } 8 | SubShader 9 | { 10 | Tags { "Queue"="Overlay+1" "ForceNoShadowCasting"="True" "IgnoreProjector"="True" } 11 | ZWrite Off 12 | ZTest Always 13 | Cull Off 14 | 15 | Pass 16 | { 17 | Lighting Off 18 | SeparateSpecular Off 19 | Fog { Mode Off } 20 | 21 | CGPROGRAM 22 | #pragma vertex vert 23 | #pragma fragment frag 24 | #pragma target 5.0 25 | 26 | #include "UnityCG.cginc" 27 | 28 | struct appdata 29 | { 30 | float4 vertex : POSITION; 31 | float2 uv : TEXCOORD0; 32 | }; 33 | 34 | struct v2f 35 | { 36 | float3 uv : TEXCOORD0; 37 | float4 vertex : SV_POSITION; 38 | }; 39 | 40 | Texture2D _MainTex; 41 | float4 _MainTex_TexelSize; 42 | float _MaxDist; 43 | 44 | v2f vert (appdata v) 45 | { 46 | v2f o; 47 | o.vertex = float4(v.uv * 2 - 1, 0, 1); 48 | #ifdef UNITY_UV_STARTS_AT_TOP 49 | v.uv.y = 1-v.uv.y; 50 | #endif 51 | o.uv.xy = UnityStereoTransformScreenSpaceTex(v.uv); 52 | o.uv.z = (distance(_WorldSpaceCameraPos, 53 | mul(unity_ObjectToWorld, float4(0,0,0,1)).xyz) > _MaxDist || 54 | !unity_OrthoParams.w) ? 55 | -1 : 1; 56 | return o; 57 | } 58 | 59 | float4 frag (v2f i) : SV_Target 60 | { 61 | clip(i.uv.z); 62 | // sample the texture 63 | float4 col = _MainTex.Load(int3(i.uv.xy * _MainTex_TexelSize.zw, 0)); 64 | return col; 65 | } 66 | ENDCG 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Shaders/buffer.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2b5dab098d91cf64c994aa36d5ea2ad7 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Shaders/debug.shader: -------------------------------------------------------------------------------- 1 | Shader "SVM Detector/debug" 2 | { 3 | Properties 4 | { 5 | _MainTex ("Texture", 2D) = "white" {} 6 | } 7 | SubShader 8 | { 9 | Tags { "RenderType"="Opaque" } 10 | LOD 100 11 | 12 | Pass 13 | { 14 | CGPROGRAM 15 | #pragma vertex vert 16 | #pragma fragment frag 17 | 18 | #include "UnityCG.cginc" 19 | 20 | struct appdata 21 | { 22 | float4 vertex : POSITION; 23 | float2 uv : TEXCOORD0; 24 | }; 25 | 26 | struct v2f 27 | { 28 | float2 uv : TEXCOORD0; 29 | float4 vertex : SV_POSITION; 30 | }; 31 | 32 | Texture2D _MainTex; 33 | float4 _MainTex_TexelSize; 34 | 35 | v2f vert (appdata v) 36 | { 37 | v2f o; 38 | o.vertex = UnityObjectToClipPos(v.vertex); 39 | o.uv = v.uv; 40 | return o; 41 | } 42 | 43 | fixed4 frag (v2f i) : SV_Target 44 | { 45 | // sample the texture 46 | uint4 col = _MainTex.Load(int3(i.uv.xy * _MainTex_TexelSize.zw, 0)); 47 | float4 fcol = i.uv.x < 0.84375 ? asfloat(col) : f16tof32(col); 48 | return saturate(fcol); 49 | } 50 | ENDCG 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Shaders/debug.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a20760e43cf42414fa0cb2a025eb5cbe 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: 6 | - _MainTex: {fileID: 8400000, guid: d2ace7d508fe58947b3317abd0c68cab, type: 2} 7 | nonModifiableTextures: [] 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Shaders/output.shader: -------------------------------------------------------------------------------- 1 | Shader "SVM Detector/output" 2 | { 3 | Properties 4 | { 5 | _MainTex ("Camera", 2D) = "white" {} 6 | _Buffer ("Buffer", 2D) = "black" {} 7 | _Threshold ("Classify Threshold", Range(0, 1)) = 0.4 8 | _HatTex ("Hats Texture", 2D) = "black" {} 9 | [Toggle]_BoundBox ("Bounding Boxes", Int) = 1 10 | _HatSelect ("Hats Select", Range(0, 4)) = 0 11 | } 12 | SubShader 13 | { 14 | Tags { "RenderType"="Opaque" } 15 | LOD 100 16 | 17 | Pass 18 | { 19 | CGPROGRAM 20 | #pragma vertex vert 21 | #pragma fragment frag 22 | 23 | #include "UnityCG.cginc" 24 | #include "svmhelper.cginc" 25 | 26 | struct appdata 27 | { 28 | float4 vertex : POSITION; 29 | float2 uv : TEXCOORD0; 30 | }; 31 | 32 | struct v2f 33 | { 34 | float2 uv : TEXCOORD0; 35 | float4 vertex : SV_POSITION; 36 | }; 37 | 38 | sampler2D _MainTex; 39 | sampler2D _HatTex; 40 | Texture2D _Buffer; 41 | float4 _MainTex_TexelSize; 42 | float _Threshold; 43 | uint _HatSelect; 44 | bool _BoundBox; 45 | 46 | inline float box(float2 uv) { 47 | uv = step(0.95, uv); 48 | return max(uv.x, uv.y); 49 | } 50 | 51 | v2f vert (appdata v) 52 | { 53 | v2f o; 54 | o.vertex = UnityObjectToClipPos(v.vertex); 55 | o.uv = v.uv; 56 | return o; 57 | } 58 | 59 | fixed4 frag (v2f ps) : SV_Target 60 | { 61 | // sample the texture 62 | fixed4 col = tex2D(_MainTex, ps.uv); 63 | float2 p = ps.uv; 64 | 65 | uint i; 66 | for (i = 0; i < 27; i++) { 67 | for (uint j = 0; j < 14; j++) { 68 | uint2 pos = txPredict1.xy + uint2(j, i); 69 | float cl = asfloat(_Buffer.Load(uint3(pos, 0)).r); 70 | float2 uv2 = (float2(i, j) / float2(27, 14)) * float2(.9, 0.8) + 71 | float2(0.07, 0.12); 72 | float2 dist = p - uv2; 73 | 74 | // 1.7778 aspect ratio 75 | bool bb = _BoundBox && cl > _Threshold && 76 | abs(dist.x) < 0.06 && abs(dist.y) < 0.10667; 77 | col.rgb *= bb ? float3(2, .5, .5) : 1.0; 78 | 79 | if (_HatSelect >= 1 && cl > _Threshold && 80 | abs(dist.x) < 0.12 && abs(dist.y - 0.2) < 0.2136) 81 | { 82 | float2 p2 = (p - (float2(i, j) * float2(.9, 0.8)) / float2(27, 14)) * 2; 83 | p2.y /= 1.77778; 84 | p2.x += 0.1 + ((_HatSelect - 1) % 2) * 0.5; 85 | p2.y -= 0.12 + ((_HatSelect - 1) / 2) * 0.5; 86 | float4 tex = tex2D(_HatTex, p2); 87 | col.rgb = lerp(col.rgb, tex.rgb, tex.a); 88 | } 89 | } 90 | } 91 | 92 | for (i = 0; i < 17; i++) { 93 | for (uint j = 0; j < 8; j++) { 94 | uint2 pos = txPredict2.xy + uint2(j, i); 95 | float cl = asfloat(_Buffer.Load(uint3(pos, 0)).r); 96 | float2 uv2 = (float2(i, j) / float2(17, 8)) * float2(0.87, 0.7) + 97 | float2(0.14, 0.24); 98 | float2 dist = p - uv2; 99 | 100 | bool bb = _BoundBox && cl > _Threshold && 101 | abs(dist.x) < 0.12 && abs(dist.y) < 0.2133; 102 | col.rgb *= bb ? float3(2, .5, .5) : 1.0; 103 | 104 | if (_HatSelect >= 1 && cl > _Threshold && 105 | abs(dist.x) < 0.18 && abs(dist.y - 0.4) < 0.32) 106 | { 107 | float2 p2 = (p - (float2(i, j) * float2(0.87, 0.7)) / float2(17, 8)) * 1.4; 108 | p2.y /= 1.77778; 109 | p2.x += 0.055 + ((_HatSelect - 1) % 2) * 0.5; 110 | p2.y += 0.75 + ((_HatSelect - 1) / 2) * 0.5; 111 | float4 tex = tex2D(_HatTex, p2); 112 | col.rgb = lerp(col.rgb, tex.rgb, tex.a); 113 | } 114 | } 115 | } 116 | 117 | for (i = 0; i < 8; i++) { 118 | uint2 pos = txPredict3.xy + uint2(0, i); 119 | float cl = asfloat(_Buffer.Load(uint3(pos, 0)).r); 120 | float2 uv2 = float2(i, 1) / float2(8, 2); 121 | uv2.x = uv2.x * 0.65 + 0.2; 122 | float2 dist = p - uv2; 123 | 124 | bool bb =_BoundBox && cl > _Threshold && 125 | abs(dist.x) < 0.24 && abs(dist.y) < 0.42667; 126 | col.rgb *= bb ? float3(2, .5, .5) : 1.0; 127 | 128 | if (_HatSelect >= 1 && cl > _Threshold && 129 | abs(dist.x) < 0.35 && abs(dist.y - 0.6) < 0.62223) 130 | { 131 | float2 p2 = (p - (float2(i, 1) * float2(0.65, 1)) / float2(8, 2)) * 0.71; 132 | p2.y /= 1.77778; 133 | p2.x += 0.105 + ((_HatSelect - 1) % 2) * 0.5; 134 | p2.y += 0.01 + ((_HatSelect - 1) / 2) * 0.5; 135 | float4 tex = tex2D(_HatTex, p2); 136 | col.rgb = lerp(col.rgb, tex.rgb, tex.a); 137 | } 138 | } 139 | 140 | col.rgb = saturate(col.rgb); 141 | return col; 142 | } 143 | ENDCG 144 | } 145 | } 146 | } 147 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Shaders/output.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 286107c66e74a244c9b17ed6b5a508c3 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: 6 | - _MainTex: {fileID: 8400000, guid: b8077ee3d7372ca4486b7030510012a9, type: 2} 7 | - _Buffer: {fileID: 8400000, guid: d2ace7d508fe58947b3317abd0c68cab, type: 2} 8 | - _HatTex: {fileID: 2800000, guid: 39f77ba42047bcb46ac9656da6c64ad5, type: 3} 9 | nonModifiableTextures: [] 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Shaders/svm.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1002441ca1f38894c8cf93f17562efba 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: 6 | - _CamIn: {fileID: 8400000, guid: e9cbad1ce5bc87d468664e87fe0d1708, type: 2} 7 | - _Buffer: {fileID: 8400000, guid: a8b0325b59c470a4bb4d08f8fa9a1183, type: 2} 8 | - _SV: {fileID: 2800000, guid: 328db56f8ac8fa0468a06eaa2a51761c, type: 2} 9 | nonModifiableTextures: [] 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Shaders/svmhelper.cginc: -------------------------------------------------------------------------------- 1 | #ifndef _SVM_HELPER 2 | #define _SVM_HELPER 3 | 4 | #define SV_NUM 350 5 | #define NOISE_THRESH 4.0 6 | 7 | #define txCam1 uint4(0, 0, 1728, 896) 8 | #define txCam2 uint4(0, 896, 1088, 512) 9 | #define txCam3 uint4(1088, 896, 64, 512) 10 | #define txPredict1 uint4(2022, 0, 14, 27) 11 | #define txPredict2 uint4(2036, 0, 8, 17) 12 | #define txPredict3 uint4(2044, 0, 1, 8) 13 | 14 | #define txUnroll1 uint4(1152, 896, 672, 27) 15 | #define txUnroll2 uint4(1152, 923, 384, 17) 16 | #define txUnroll3 uint4(1152, 940, 48, 8) 17 | 18 | #define txCam1Bin uint4(1840, 378, 112, 216) 19 | #define txCam1Norm uint4(1924, 0, 98, 189) 20 | #define txCam1Hog uint4(1728, 0, 196, 378) 21 | 22 | #define txCam2Bin uint4(1952, 378, 64, 136) 23 | #define txCam2Norm uint4(1938, 189, 56, 98) 24 | #define txCam2Hog uint4(1728, 378, 112, 238) 25 | 26 | #define txCam3Bin uint4(1994, 189, 8, 64) 27 | #define txCam3Norm uint4(2002, 189, 7, 56) 28 | #define txCam3Hog uint4(1924, 189, 14, 112) 29 | 30 | #define txLC uint2(2046, 2047) 31 | #define txTimer uint2(2047, 2047) 32 | 33 | static const float fX[3][3] = 34 | { 35 | -1, 0, 1, 36 | -2, 0, 2, 37 | -1, 0, 1 38 | }; 39 | 40 | static const float fY[3][3] = 41 | { 42 | -1, -2, -1, 43 | 0, 0, 0, 44 | 1, 2, 1 45 | }; 46 | 47 | // float test(uint3 pos, uint maxNum) 48 | // { 49 | // float r; 50 | // if (pos.z == 0) 51 | // r = (pos.x / 64.0) * (pos.y / 64.0) * 2.0 - 1.0; 52 | // else if (pos.z == 1) 53 | // r = ((64.0 - pos.x) / 64.0) * (pos.y / 64.0) * 2.0 - 1.0; 54 | // else 55 | // r = (pos.x / 64.0) * ((64.0 - pos.y) / 64.0) * 2.0 - 1.0; 56 | // r = pos.x > maxNum ? 0.0 : r; 57 | // r = pos.y > maxNum ? 0.0 : r; 58 | // return r; 59 | // } 60 | 61 | void getFeature(inout float hogs[8], Texture2D tex, uint2 iniPos, 62 | uint2 offset, uint l) 63 | { 64 | uint2 pos = offset * 14 + iniPos + uint2(l / 14, l % 14); 65 | uint4 buf = tex.Load(uint3(pos, 0)); 66 | hogs[0] = f16tof32(buf[0] >> 16); 67 | hogs[1] = f16tof32(buf[0]); 68 | hogs[2] = f16tof32(buf[1] >> 16); 69 | hogs[3] = f16tof32(buf[1]); 70 | hogs[4] = f16tof32(buf[2] >> 16); 71 | hogs[5] = f16tof32(buf[2]); 72 | hogs[6] = f16tof32(buf[3] >> 16); 73 | hogs[7] = f16tof32(buf[3]); 74 | } 75 | 76 | float getSV(Texture2D tex, uint k, uint m) 77 | { 78 | return tex.Load(uint3((k % 20) * 40 + m % 40, (k / 20) * 40 + m / 40, 0)).x; 79 | } 80 | 81 | inline bool insideArea(in uint4 area, uint2 px) 82 | { 83 | if (px.x >= area.x && px.x < (area.x + area.z) && 84 | px.y >= area.y && px.y < (area.y + area.w)) 85 | { 86 | return true; 87 | } 88 | return false; 89 | } 90 | 91 | inline uint4 LoadValueUint( in Texture2D tex, in int2 re ) 92 | { 93 | return asuint(tex.Load(int3(re, 0))); 94 | } 95 | 96 | inline void StoreValueUint( in int2 txPos, in uint4 value, inout uint4 col, 97 | in int2 fragPos ) 98 | { 99 | col = all(fragPos == txPos) ? value : col; 100 | } 101 | 102 | inline float4 LoadValueFloat( in Texture2D tex, in int2 re ) 103 | { 104 | return asfloat(tex.Load(int3(re, 0))); 105 | } 106 | 107 | inline void StoreValueFloat( in int2 txPos, in float4 value, inout uint4 col, 108 | in int2 fragPos ) 109 | { 110 | col = all(fragPos == txPos) ? asuint(value) : col; 111 | } 112 | 113 | #endif -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Shaders/svmhelper.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 209a8e3e6a2d724418bbe07d9d3e61c3 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Shaders/visual.shader: -------------------------------------------------------------------------------- 1 | Shader "SVM Detector/visual" 2 | { 3 | Properties 4 | { 5 | _Buffer ("Buffer", 2D) = "black" {} 6 | } 7 | SubShader 8 | { 9 | Tags { "RenderType"="Opaque" } 10 | LOD 100 11 | 12 | Pass 13 | { 14 | CGPROGRAM 15 | #pragma vertex vert 16 | #pragma fragment frag 17 | 18 | #include "UnityCG.cginc" 19 | #include "svmhelper.cginc" 20 | #pragma target 5.0 21 | 22 | struct appdata 23 | { 24 | float4 vertex : POSITION; 25 | float2 uv : TEXCOORD0; 26 | }; 27 | 28 | struct v2f 29 | { 30 | float2 uv : TEXCOORD0; 31 | float4 vertex : SV_POSITION; 32 | }; 33 | 34 | //RWStructuredBuffer buffer : register(u1); 35 | Texture2D _Buffer; 36 | float4 _Buffer_TexelSize; 37 | float _Threshold; 38 | 39 | float2 rot2(float2 inCoords, float rot) 40 | { 41 | float sinRot; 42 | float cosRot; 43 | sincos(rot, sinRot, cosRot); 44 | return mul(float2x2(cosRot, -sinRot, sinRot, cosRot), inCoords); 45 | } 46 | 47 | // https://www.shadertoy.com/view/3tdSDj 48 | float udSegment( in float2 p, in float2 a, in float2 b ) 49 | { 50 | float2 ba = b-a; 51 | float2 pa = p-a; 52 | float h = saturate( dot(pa,ba)/dot(ba,ba) ); 53 | return length(pa-h*ba); 54 | } 55 | 56 | v2f vert (appdata v) 57 | { 58 | v2f o; 59 | o.vertex = UnityObjectToClipPos(v.vertex); 60 | o.uv = v.uv; 61 | return o; 62 | } 63 | 64 | float4 frag (v2f ps) : SV_Target 65 | { 66 | float4 scoreHOG[4] = 67 | { 68 | -1.0, 0., 0., 0., 69 | -1.0, 0., 0., 0., 70 | -1.0, 0., 0., 0., 71 | -1.0, 0., 0., 0. 72 | }; 73 | 74 | // Find 4 highest scores 75 | uint i; 76 | for (i = 0; i < 8; i++) { 77 | uint2 pos = txPredict3.xy + uint2(0, i); 78 | float cl = asfloat(_Buffer.Load(uint3(pos, 0)).r); 79 | // Only if current score is bigger than last entry 80 | if (cl > scoreHOG[3].x) 81 | { 82 | float4 curHOG = float4(cl, 3, float2(0, i)); 83 | // Sorting 84 | [unroll] 85 | for (int j = 0; j < 4; j++) { 86 | float4 prevHOG = curHOG.x > scoreHOG[j].x ? scoreHOG[j] : curHOG; 87 | scoreHOG[j] = curHOG.x > scoreHOG[j].x ? curHOG : scoreHOG[j]; 88 | curHOG = curHOG.x > scoreHOG[j].x ? scoreHOG[j] : prevHOG; 89 | } 90 | } 91 | } 92 | 93 | for (i = 0; i < 17; i++) { 94 | for (uint j = 0; j < 8; j++) { 95 | uint2 pos = txPredict2.xy + uint2(j, i); 96 | float cl = asfloat(_Buffer.Load(uint3(pos, 0)).r); 97 | float4 curHOG = float4(cl, 2, float2(i, j)); 98 | // Only if current score is bigger than last entry 99 | if (cl > scoreHOG[3].x) 100 | { 101 | // Sorting 102 | [unroll] 103 | for (int k = 0; k < 4; k++) { 104 | float4 prevHOG = curHOG.x > scoreHOG[k].x ? scoreHOG[k] : curHOG; 105 | scoreHOG[k] = curHOG.x > scoreHOG[k].x ? curHOG : scoreHOG[k]; 106 | curHOG = curHOG.x > scoreHOG[k].x ? scoreHOG[k] : prevHOG; 107 | } 108 | } 109 | } 110 | } 111 | 112 | for (i = 0; i < 27; i++) { 113 | for (uint j = 0; j < 14; j++) { 114 | uint2 pos = txPredict1.xy + uint2(j, i); 115 | float cl = asfloat(_Buffer.Load(uint3(pos, 0)).r); 116 | float4 curHOG = float4(cl, 1, float2(i, j)); 117 | // Only if current score is bigger than last entry 118 | if (cl > scoreHOG[3].x) 119 | { 120 | // Sorting 121 | [unroll] 122 | for (int k = 0; k < 4; k++) { 123 | float4 prevHOG = curHOG.x > scoreHOG[k].x ? scoreHOG[k] : curHOG; 124 | scoreHOG[k] = curHOG.x > scoreHOG[k].x ? curHOG : scoreHOG[k]; 125 | curHOG = curHOG.x > scoreHOG[k].x ? scoreHOG[k] : prevHOG; 126 | } 127 | } 128 | } 129 | } 130 | 131 | float4 col = 1.0; 132 | float2 p = fmod(ps.uv * 2, 1.0); 133 | uint2 id = floor(ps.uv * 2); 134 | id.x = id.x + (1 - id.y) * 2; 135 | 136 | // get the camera input 137 | uint2 pos = (floor(scoreHOG[id.x].y) == 3) ? txCam3.xy : 138 | (floor(scoreHOG[id.x].y) == 2) ? txCam2.xy : txCam1.xy; 139 | pos += scoreHOG[id.x].zw * 64 + p * 64; 140 | col.rgb = asfloat(_Buffer.Load(uint3(pos, 0)).r); 141 | 142 | // get the bins 143 | p = fmod(ps.uv * 16, 1.0); 144 | bool cam3 = floor(scoreHOG[id.x].y) == 3; 145 | pos = (cam3) ? txCam3Bin.xy : 146 | (floor(scoreHOG[id.x].y) == 2) ? txCam2Bin.xy : txCam1Bin.xy; 147 | uint2 of2 = floor(fmod(ps.uv * 16, 8)); 148 | pos += scoreHOG[id.x].wz * 8 + (cam3 ? of2 : of2.yx); 149 | 150 | float bins[8]; 151 | uint4 buf = _Buffer.Load(uint3(pos, 0)); 152 | bins[0] = f16tof32(buf.x >> 16); 153 | bins[1] = f16tof32(buf.x); 154 | bins[2] = f16tof32(buf.y >> 16); 155 | bins[3] = f16tof32(buf.y); 156 | bins[4] = f16tof32(buf.z >> 16); 157 | bins[5] = f16tof32(buf.z); 158 | bins[6] = f16tof32(buf.w >> 16); 159 | bins[7] = f16tof32(buf.w); 160 | 161 | // if (id.x == 0 && id.y == 0) 162 | // buffer[0] = float4(bins[0], bins[1],bins[2],bins[3]); 163 | 164 | float btop = 0.0; 165 | [unroll] 166 | for (i = 0; i < 7; i++) btop = max(btop, bins[i]); 167 | // squash the noise 168 | btop = btop < 0.5 ? 999999.0 : btop; 169 | 170 | const float ro = 0.5; 171 | 172 | // bin 0 173 | float l = (bins[0] / btop) * 0.4; 174 | float d = udSegment(p, float2(0.5 - l, 0.5), float2(0.5 + l, 0.5)) - 0.01; 175 | col.rgb = d < 0.01 ? float3(0.0, 1.0, 0.0) : col.rgb; 176 | 177 | // bin 1 178 | float2 pr = rot2(p - ro, 0.3927) + ro; 179 | l = (bins[1] / btop) * 0.4; 180 | d = udSegment(pr, float2(0.5 - l, 0.5), float2(0.5 + l, 0.5)) - 0.01; 181 | col.rgb = d < 0.01 ? float3(0.0, 1.0, 0.0) : col.rgb; 182 | 183 | // bin 2 184 | pr = rot2(p - ro, 0.7854) + ro; 185 | l = (bins[2] / btop) * 0.4; 186 | d = udSegment(pr, float2(0.5 - l, 0.5), float2(0.5 + l, 0.5)) - 0.01; 187 | col.rgb = d < 0.01 ? float3(0.0, 1.0, 0.0) : col.rgb; 188 | 189 | // bin 3 190 | pr = rot2(p - ro, 1.1781) + ro; 191 | l = (bins[3] / btop) * 0.4; 192 | d = udSegment(pr, float2(0.5 - l, 0.5), float2(0.5 + l, 0.5)) - 0.01; 193 | col.rgb = d < 0.01 ? float3(0.0, 1.0, 0.0) : col.rgb; 194 | 195 | // bin 4 196 | pr = rot2(p - ro, 1.5708) + ro; 197 | l = (bins[4] / btop) * 0.4; 198 | d = udSegment(pr, float2(0.5 - l, 0.5), float2(0.5 + l, 0.5)) - 0.01; 199 | col.rgb = d < 0.01 ? float3(0.0, 1.0, 0.0) : col.rgb; 200 | 201 | // bin 5 202 | pr = rot2(p - ro, 1.9635) + ro; 203 | l = (bins[5] / btop) * 0.4; 204 | d = udSegment(pr, float2(0.5 - l, 0.5), float2(0.5 + l, 0.5)) - 0.01; 205 | col.rgb = d < 0.01 ? float3(0.0, 1.0, 0.0) : col.rgb; 206 | 207 | // bin 6 208 | pr = rot2(p - ro, 2.3562) + ro; 209 | l = (bins[6] / btop) * 0.4; 210 | d = udSegment(pr, float2(0.5 - l, 0.5), float2(0.5 + l, 0.5)) - 0.01; 211 | col.rgb = d < 0.01 ? float3(0.0, 1.0, 0.0) : col.rgb; 212 | 213 | // bin 7 214 | pr = rot2(p - ro, 2.7489) + ro; 215 | l = (bins[7] / btop) * 0.4; 216 | d = udSegment(pr, float2(0.5 - l, 0.5), float2(0.5 + l, 0.5)) - 0.01; 217 | col.rgb = d < 0.01 ? float3(0.0, 1.0, 0.0) : col.rgb; 218 | 219 | float2 p1 = abs(fmod(ps.uv * 128 + 1.0, 8.0) - 1.0); 220 | float g1 = saturate(min(p1.x, p1.y) * 4); 221 | 222 | col.rgb = g1 > .9 ? col.rgb : float3(0.4, 0.4, 0.4); 223 | col = saturate(col); 224 | return col; 225 | } 226 | ENDCG 227 | } 228 | } 229 | } 230 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Shaders/visual.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3de97d76fde192843ae6462843d1146f 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: 6 | - _Buffer: {fileID: 8400000, guid: a8b0325b59c470a4bb4d08f8fa9a1183, type: 2} 7 | nonModifiableTextures: [] 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/SupportVectors.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 328db56f8ac8fa0468a06eaa2a51761c 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2800000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Test.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5667566f38538e443a7f3f2aa5919d0e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Test/VRChat_3840x2160_2020-04-06_00-56-58.220.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/Assets/SVM Detector/Test/VRChat_3840x2160_2020-04-06_00-56-58.220.png -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Test/VRChat_3840x2160_2020-04-06_00-56-58.220.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0cb824deafafadc4d9a98dedbd9ced9e 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 9 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 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Test/bush.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/Assets/SVM Detector/Test/bush.bmp -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Test/bush.bmp.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ea550711a0bd9f743a9dc21ef3d0dcbf 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 9 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 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Test/p1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/Assets/SVM Detector/Test/p1.jpg -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Test/p1.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 777e0314783bf574fbf2c1efb51be76f 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 9 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 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Test/uv.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/Assets/SVM Detector/Test/uv.bmp -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Test/uv.bmp.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3f9e1d0b466a2a54d8807292bb50269b 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 9 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 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Textures.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5392d7e0044615047bdf6b215e6077c6 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Textures/CameraHigh.renderTexture: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!84 &8400000 4 | RenderTexture: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: CameraHigh 10 | m_ImageContentsHash: 11 | serializedVersion: 2 12 | Hash: 00000000000000000000000000000000 13 | m_ForcedFallbackFormat: 4 14 | m_DownscaleFallback: 0 15 | m_Width: 1200 16 | m_Height: 675 17 | m_AntiAliasing: 1 18 | m_DepthFormat: 2 19 | m_ColorFormat: 0 20 | m_MipMap: 0 21 | m_GenerateMips: 1 22 | m_SRGB: 1 23 | m_UseDynamicScale: 0 24 | m_BindMS: 0 25 | m_TextureSettings: 26 | serializedVersion: 2 27 | m_FilterMode: 1 28 | m_Aniso: 0 29 | m_MipBias: 0 30 | m_WrapU: 1 31 | m_WrapV: 1 32 | m_WrapW: 1 33 | m_Dimension: 2 34 | m_VolumeDepth: 1 35 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Textures/CameraHigh.renderTexture.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b8077ee3d7372ca4486b7030510012a9 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 8400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Textures/CameraLow.renderTexture: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!84 &8400000 4 | RenderTexture: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: CameraLow 10 | m_ImageContentsHash: 11 | serializedVersion: 2 12 | Hash: 00000000000000000000000000000000 13 | m_ForcedFallbackFormat: 4 14 | m_DownscaleFallback: 0 15 | m_Width: 480 16 | m_Height: 270 17 | m_AntiAliasing: 1 18 | m_DepthFormat: 2 19 | m_ColorFormat: 0 20 | m_MipMap: 0 21 | m_GenerateMips: 1 22 | m_SRGB: 1 23 | m_UseDynamicScale: 0 24 | m_BindMS: 0 25 | m_TextureSettings: 26 | serializedVersion: 2 27 | m_FilterMode: 1 28 | m_Aniso: 0 29 | m_MipBias: 0 30 | m_WrapU: 1 31 | m_WrapV: 1 32 | m_WrapW: 1 33 | m_Dimension: 2 34 | m_VolumeDepth: 1 35 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Textures/CameraLow.renderTexture.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9cbad1ce5bc87d468664e87fe0d1708 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 8400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Textures/Hats.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d165c7a660e8ff9449fc1b339ffbc627 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Textures/Hats/hats.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/Assets/SVM Detector/Textures/Hats/hats.png -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Textures/Hats/hats.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 39f77ba42047bcb46ac9656da6c64ad5 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 9 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: 1 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 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 2048 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | spriteSheet: 84 | serializedVersion: 2 85 | sprites: [] 86 | outline: [] 87 | physicsShape: [] 88 | bones: [] 89 | spriteID: 90 | vertices: [] 91 | indices: 92 | edges: [] 93 | weights: [] 94 | spritePackingTag: 95 | pSDRemoveMatte: 0 96 | pSDShowRemoveMatteOption: 0 97 | userData: 98 | assetBundleName: 99 | assetBundleVariant: 100 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Textures/presentation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/Assets/SVM Detector/Textures/presentation.png -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Textures/presentation.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 88dfd4c7ef0d7194b8013f3674ae6b52 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 9 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 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: 1 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: 0 38 | wrapV: 0 39 | wrapW: 0 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: 1 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: 2 67 | compressionQuality: 90 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 2048 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 2 78 | compressionQuality: 90 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | spriteSheet: 84 | serializedVersion: 2 85 | sprites: [] 86 | outline: [] 87 | physicsShape: [] 88 | bones: [] 89 | spriteID: 90 | vertices: [] 91 | indices: 92 | edges: [] 93 | weights: [] 94 | spritePackingTag: 95 | pSDRemoveMatte: 0 96 | pSDShowRemoveMatteOption: 0 97 | userData: 98 | assetBundleName: 99 | assetBundleVariant: 100 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Textures/svm buffer.renderTexture: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!84 &8400000 4 | RenderTexture: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: svm buffer 10 | m_ImageContentsHash: 11 | serializedVersion: 2 12 | Hash: 00000000000000000000000000000000 13 | m_ForcedFallbackFormat: 4 14 | m_DownscaleFallback: 0 15 | m_Width: 2048 16 | m_Height: 2048 17 | m_AntiAliasing: 1 18 | m_DepthFormat: 2 19 | m_ColorFormat: 11 20 | m_MipMap: 0 21 | m_GenerateMips: 1 22 | m_SRGB: 0 23 | m_UseDynamicScale: 0 24 | m_BindMS: 0 25 | m_TextureSettings: 26 | serializedVersion: 2 27 | m_FilterMode: 0 28 | m_Aniso: 0 29 | m_MipBias: 0 30 | m_WrapU: 1 31 | m_WrapV: 1 32 | m_WrapW: 1 33 | m_Dimension: 2 34 | m_VolumeDepth: 1 35 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Textures/svm buffer.renderTexture.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a8b0325b59c470a4bb4d08f8fa9a1183 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 8400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Textures/svm out.renderTexture: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!84 &8400000 4 | RenderTexture: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: svm out 10 | m_ImageContentsHash: 11 | serializedVersion: 2 12 | Hash: 00000000000000000000000000000000 13 | m_ForcedFallbackFormat: 4 14 | m_DownscaleFallback: 0 15 | m_Width: 2048 16 | m_Height: 2048 17 | m_AntiAliasing: 1 18 | m_DepthFormat: 2 19 | m_ColorFormat: 11 20 | m_MipMap: 0 21 | m_GenerateMips: 1 22 | m_SRGB: 0 23 | m_UseDynamicScale: 0 24 | m_BindMS: 0 25 | m_TextureSettings: 26 | serializedVersion: 2 27 | m_FilterMode: 0 28 | m_Aniso: 0 29 | m_MipBias: 0 30 | m_WrapU: 1 31 | m_WrapV: 1 32 | m_WrapW: 1 33 | m_Dimension: 2 34 | m_VolumeDepth: 1 35 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/Textures/svm out.renderTexture.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d2ace7d508fe58947b3317abd0c68cab 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 8400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Unity/Assets/SVM Detector/svm-out.xml.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 05c2f58ad8110134eb580be7b15a640d 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Unity/Assets/SaveRenderTextureToFile.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEditor; 3 | 4 | public class SaveRenderTextureToFile { 5 | [MenuItem("Assets/Save RenderTexture to file")] 6 | public static void SaveRTToFile() 7 | { 8 | RenderTexture rt = Selection.activeObject as RenderTexture; 9 | 10 | RenderTexture.active = rt; 11 | Texture2D tex = new Texture2D(rt.width, rt.height, TextureFormat.RGB24, false); 12 | tex.ReadPixels(new Rect(0, 0, rt.width, rt.height), 0, 0); 13 | RenderTexture.active = null; 14 | 15 | byte[] bytes; 16 | bytes = tex.EncodeToPNG(); 17 | 18 | string path = AssetDatabase.GetAssetPath(rt) + ".png"; 19 | System.IO.File.WriteAllBytes(path, bytes); 20 | AssetDatabase.ImportAsset(path); 21 | Debug.Log("Saved to " + path); 22 | } 23 | 24 | [MenuItem("Assets/Save RenderTexture to file", true)] 25 | public static bool SaveRTToFileValidation() 26 | { 27 | return Selection.activeObject is RenderTexture; 28 | } 29 | } -------------------------------------------------------------------------------- /Unity/Assets/SaveRenderTextureToFile.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fda3dcec6cb174a459e7be734f8507bf 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Unity/Assets/ShaderDebugging.cs: -------------------------------------------------------------------------------- 1 |  2 | /// https://github.com/przemyslawzaworski/Unity3D-CG-programming/blob/master/ShaderDebugging.cs 3 | 4 | using UnityEngine; 5 | 6 | public class ShaderDebugging : MonoBehaviour 7 | { 8 | public GameObject target; 9 | 10 | private Material material; 11 | private ComputeBuffer buffer; 12 | private Vector4[] element; 13 | private string label; 14 | private Renderer render; 15 | 16 | void Load () 17 | { 18 | buffer = new ComputeBuffer(1, 16, ComputeBufferType.Default); 19 | element = new Vector4[1]; 20 | label = string.Empty; 21 | render = target.GetComponent(); 22 | material = render.material; 23 | } 24 | 25 | void Start () 26 | { 27 | Load(); 28 | } 29 | 30 | void Update () 31 | { 32 | Graphics.ClearRandomWriteTargets(); 33 | material.SetPass(0); 34 | material.SetBuffer("buffer", buffer); 35 | Graphics.SetRandomWriteTarget(1, buffer, false); 36 | buffer.GetData(element); 37 | label = (element!=null && render.isVisible) ? element[0].ToString("F3") : string.Empty; 38 | } 39 | 40 | void OnGUI() 41 | { 42 | GUIStyle style = new GUIStyle(); 43 | style.fontSize = 32; 44 | GUI.Label(new Rect(50, 50, 400, 100), label, style); 45 | } 46 | 47 | void OnDestroy() 48 | { 49 | buffer.Dispose(); 50 | } 51 | } -------------------------------------------------------------------------------- /Unity/Assets/ShaderDebugging.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 223fb2184fa851048aac3870bb157ca4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Unity/ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/ProjectSettings/AudioManager.asset -------------------------------------------------------------------------------- /Unity/ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/ProjectSettings/ClusterInputManager.asset -------------------------------------------------------------------------------- /Unity/ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/ProjectSettings/DynamicsManager.asset -------------------------------------------------------------------------------- /Unity/ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/ProjectSettings/EditorBuildSettings.asset -------------------------------------------------------------------------------- /Unity/ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/ProjectSettings/EditorSettings.asset -------------------------------------------------------------------------------- /Unity/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 | - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} 39 | m_PreloadedShaders: [] 40 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 41 | type: 0} 42 | m_CustomRenderPipeline: {fileID: 0} 43 | m_TransparencySortMode: 0 44 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 45 | m_DefaultRenderingPath: 1 46 | m_DefaultMobileRenderingPath: 1 47 | m_TierSettings: [] 48 | m_LightmapStripping: 0 49 | m_FogStripping: 0 50 | m_InstancingStripping: 0 51 | m_LightmapKeepPlain: 1 52 | m_LightmapKeepDirCombined: 1 53 | m_LightmapKeepDynamicPlain: 1 54 | m_LightmapKeepDynamicDirCombined: 1 55 | m_LightmapKeepShadowMask: 1 56 | m_LightmapKeepSubtractive: 1 57 | m_FogKeepLinear: 1 58 | m_FogKeepExp: 1 59 | m_FogKeepExp2: 1 60 | m_AlbedoSwatchInfos: [] 61 | m_LightsUseLinearIntensity: 1 62 | m_LightsUseColorTemperature: 1 63 | m_LogWhenShaderIsCompiled: 0 64 | -------------------------------------------------------------------------------- /Unity/ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/ProjectSettings/InputManager.asset -------------------------------------------------------------------------------- /Unity/ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/ProjectSettings/NavMeshAreas.asset -------------------------------------------------------------------------------- /Unity/ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/ProjectSettings/Physics2DSettings.asset -------------------------------------------------------------------------------- /Unity/ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/ProjectSettings/PresetManager.asset -------------------------------------------------------------------------------- /Unity/ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!129 &1 4 | PlayerSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 18 7 | productGUID: fe85ecc630ae2d942913c9b80a775105 8 | AndroidProfiler: 0 9 | AndroidFilterTouchesWhenObscured: 0 10 | AndroidEnableSustainedPerformanceMode: 0 11 | defaultScreenOrientation: 4 12 | targetDevice: 2 13 | useOnDemandResources: 0 14 | accelerometerFrequency: 60 15 | companyName: DefaultCompany 16 | productName: SVM Detector 17 | defaultCursor: {fileID: 0} 18 | cursorHotspot: {x: 0, y: 0} 19 | m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} 20 | m_ShowUnitySplashScreen: 1 21 | m_ShowUnitySplashLogo: 1 22 | m_SplashScreenOverlayOpacity: 1 23 | m_SplashScreenAnimation: 1 24 | m_SplashScreenLogoStyle: 1 25 | m_SplashScreenDrawMode: 0 26 | m_SplashScreenBackgroundAnimationZoom: 1 27 | m_SplashScreenLogoAnimationZoom: 1 28 | m_SplashScreenBackgroundLandscapeAspect: 1 29 | m_SplashScreenBackgroundPortraitAspect: 1 30 | m_SplashScreenBackgroundLandscapeUvs: 31 | serializedVersion: 2 32 | x: 0 33 | y: 0 34 | width: 1 35 | height: 1 36 | m_SplashScreenBackgroundPortraitUvs: 37 | serializedVersion: 2 38 | x: 0 39 | y: 0 40 | width: 1 41 | height: 1 42 | m_SplashScreenLogos: [] 43 | m_VirtualRealitySplashScreen: {fileID: 0} 44 | m_HolographicTrackingLossScreen: {fileID: 0} 45 | defaultScreenWidth: 1024 46 | defaultScreenHeight: 768 47 | defaultScreenWidthWeb: 960 48 | defaultScreenHeightWeb: 600 49 | m_StereoRenderingPath: 1 50 | m_ActiveColorSpace: 1 51 | m_MTRendering: 1 52 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000 53 | iosShowActivityIndicatorOnLoading: -1 54 | androidShowActivityIndicatorOnLoading: -1 55 | displayResolutionDialog: 1 56 | iosUseCustomAppBackgroundBehavior: 0 57 | iosAllowHTTPDownload: 1 58 | allowedAutorotateToPortrait: 1 59 | allowedAutorotateToPortraitUpsideDown: 1 60 | allowedAutorotateToLandscapeRight: 1 61 | allowedAutorotateToLandscapeLeft: 1 62 | useOSAutorotation: 1 63 | use32BitDisplayBuffer: 1 64 | preserveFramebufferAlpha: 0 65 | disableDepthAndStencilBuffers: 0 66 | androidStartInFullscreen: 1 67 | androidRenderOutsideSafeArea: 0 68 | androidBlitType: 0 69 | defaultIsNativeResolution: 1 70 | macRetinaSupport: 1 71 | runInBackground: 1 72 | captureSingleScreen: 0 73 | muteOtherAudioSources: 0 74 | Prepare IOS For Recording: 0 75 | Force IOS Speakers When Recording: 0 76 | deferSystemGesturesMode: 0 77 | hideHomeButton: 0 78 | submitAnalytics: 1 79 | usePlayerLog: 1 80 | bakeCollisionMeshes: 0 81 | forceSingleInstance: 0 82 | resizableWindow: 0 83 | useMacAppStoreValidation: 0 84 | macAppStoreCategory: public.app-category.games 85 | gpuSkinning: 1 86 | graphicsJobs: 0 87 | xboxPIXTextureCapture: 0 88 | xboxEnableAvatar: 0 89 | xboxEnableKinect: 0 90 | xboxEnableKinectAutoTracking: 0 91 | xboxEnableFitness: 0 92 | visibleInBackground: 1 93 | allowFullscreenSwitch: 1 94 | graphicsJobMode: 0 95 | fullscreenMode: 1 96 | xboxSpeechDB: 0 97 | xboxEnableHeadOrientation: 0 98 | xboxEnableGuest: 0 99 | xboxEnablePIXSampling: 0 100 | metalFramebufferOnly: 0 101 | xboxOneResolution: 0 102 | xboxOneSResolution: 0 103 | xboxOneXResolution: 3 104 | xboxOneMonoLoggingLevel: 0 105 | xboxOneLoggingLevel: 1 106 | xboxOneDisableEsram: 0 107 | xboxOneEnableTypeOptimization: 0 108 | xboxOnePresentImmediateThreshold: 0 109 | switchQueueCommandMemory: 1048576 110 | switchQueueControlMemory: 16384 111 | switchQueueComputeMemory: 262144 112 | switchNVNShaderPoolsGranularity: 33554432 113 | switchNVNDefaultPoolsGranularity: 16777216 114 | switchNVNOtherPoolsGranularity: 16777216 115 | vulkanEnableSetSRGBWrite: 0 116 | m_SupportedAspectRatios: 117 | 4:3: 1 118 | 5:4: 1 119 | 16:10: 1 120 | 16:9: 1 121 | Others: 1 122 | bundleVersion: 1.0 123 | preloadedAssets: [] 124 | metroInputSource: 0 125 | wsaTransparentSwapchain: 0 126 | m_HolographicPauseOnTrackingLoss: 1 127 | xboxOneDisableKinectGpuReservation: 0 128 | xboxOneEnable7thCore: 1 129 | isWsaHolographicRemotingEnabled: 0 130 | vrSettings: 131 | cardboard: 132 | depthFormat: 0 133 | enableTransitionView: 0 134 | daydream: 135 | depthFormat: 0 136 | useSustainedPerformanceMode: 0 137 | enableVideoLayer: 0 138 | useProtectedVideoMemory: 0 139 | minimumSupportedHeadTracking: 0 140 | maximumSupportedHeadTracking: 1 141 | hololens: 142 | depthFormat: 1 143 | depthBufferSharingEnabled: 1 144 | oculus: 145 | sharedDepthBuffer: 1 146 | dashSupport: 1 147 | lowOverheadMode: 0 148 | protectedContext: 0 149 | v2Signing: 0 150 | enable360StereoCapture: 0 151 | protectGraphicsMemory: 0 152 | enableFrameTimingStats: 0 153 | useHDRDisplay: 0 154 | m_ColorGamuts: 00000000 155 | targetPixelDensity: 30 156 | resolutionScalingMode: 0 157 | androidSupportedAspectRatio: 1 158 | androidMaxAspectRatio: 2.1 159 | applicationIdentifier: {} 160 | buildNumber: {} 161 | AndroidBundleVersionCode: 1 162 | AndroidMinSdkVersion: 16 163 | AndroidTargetSdkVersion: 0 164 | AndroidPreferredInstallLocation: 1 165 | aotOptions: 166 | stripEngineCode: 1 167 | iPhoneStrippingLevel: 0 168 | iPhoneScriptCallOptimization: 0 169 | ForceInternetPermission: 0 170 | ForceSDCardPermission: 0 171 | CreateWallpaper: 0 172 | APKExpansionFiles: 0 173 | keepLoadedShadersAlive: 0 174 | StripUnusedMeshComponents: 0 175 | VertexChannelCompressionMask: 4054 176 | iPhoneSdkVersion: 988 177 | iOSTargetOSVersionString: 9.0 178 | tvOSSdkVersion: 0 179 | tvOSRequireExtendedGameController: 0 180 | tvOSTargetOSVersionString: 9.0 181 | uIPrerenderedIcon: 0 182 | uIRequiresPersistentWiFi: 0 183 | uIRequiresFullScreen: 1 184 | uIStatusBarHidden: 1 185 | uIExitOnSuspend: 0 186 | uIStatusBarStyle: 0 187 | iPhoneSplashScreen: {fileID: 0} 188 | iPhoneHighResSplashScreen: {fileID: 0} 189 | iPhoneTallHighResSplashScreen: {fileID: 0} 190 | iPhone47inSplashScreen: {fileID: 0} 191 | iPhone55inPortraitSplashScreen: {fileID: 0} 192 | iPhone55inLandscapeSplashScreen: {fileID: 0} 193 | iPhone58inPortraitSplashScreen: {fileID: 0} 194 | iPhone58inLandscapeSplashScreen: {fileID: 0} 195 | iPadPortraitSplashScreen: {fileID: 0} 196 | iPadHighResPortraitSplashScreen: {fileID: 0} 197 | iPadLandscapeSplashScreen: {fileID: 0} 198 | iPadHighResLandscapeSplashScreen: {fileID: 0} 199 | appleTVSplashScreen: {fileID: 0} 200 | appleTVSplashScreen2x: {fileID: 0} 201 | tvOSSmallIconLayers: [] 202 | tvOSSmallIconLayers2x: [] 203 | tvOSLargeIconLayers: [] 204 | tvOSLargeIconLayers2x: [] 205 | tvOSTopShelfImageLayers: [] 206 | tvOSTopShelfImageLayers2x: [] 207 | tvOSTopShelfImageWideLayers: [] 208 | tvOSTopShelfImageWideLayers2x: [] 209 | iOSLaunchScreenType: 0 210 | iOSLaunchScreenPortrait: {fileID: 0} 211 | iOSLaunchScreenLandscape: {fileID: 0} 212 | iOSLaunchScreenBackgroundColor: 213 | serializedVersion: 2 214 | rgba: 0 215 | iOSLaunchScreenFillPct: 100 216 | iOSLaunchScreenSize: 100 217 | iOSLaunchScreenCustomXibPath: 218 | iOSLaunchScreeniPadType: 0 219 | iOSLaunchScreeniPadImage: {fileID: 0} 220 | iOSLaunchScreeniPadBackgroundColor: 221 | serializedVersion: 2 222 | rgba: 0 223 | iOSLaunchScreeniPadFillPct: 100 224 | iOSLaunchScreeniPadSize: 100 225 | iOSLaunchScreeniPadCustomXibPath: 226 | iOSUseLaunchScreenStoryboard: 0 227 | iOSLaunchScreenCustomStoryboardPath: 228 | iOSDeviceRequirements: [] 229 | iOSURLSchemes: [] 230 | iOSBackgroundModes: 0 231 | iOSMetalForceHardShadows: 0 232 | metalEditorSupport: 1 233 | metalAPIValidation: 1 234 | iOSRenderExtraFrameOnPause: 0 235 | appleDeveloperTeamID: 236 | iOSManualSigningProvisioningProfileID: 237 | tvOSManualSigningProvisioningProfileID: 238 | iOSManualSigningProvisioningProfileType: 0 239 | tvOSManualSigningProvisioningProfileType: 0 240 | appleEnableAutomaticSigning: 0 241 | iOSRequireARKit: 0 242 | iOSAutomaticallyDetectAndAddCapabilities: 1 243 | appleEnableProMotion: 0 244 | clonedFromGUID: 00000000000000000000000000000000 245 | templatePackageId: 246 | templateDefaultScene: 247 | AndroidTargetArchitectures: 1 248 | AndroidSplashScreenScale: 0 249 | androidSplashScreen: {fileID: 0} 250 | AndroidKeystoreName: 251 | AndroidKeyaliasName: 252 | AndroidBuildApkPerCpuArchitecture: 0 253 | AndroidTVCompatibility: 0 254 | AndroidIsGame: 1 255 | AndroidEnableTango: 0 256 | androidEnableBanner: 1 257 | androidUseLowAccuracyLocation: 0 258 | m_AndroidBanners: 259 | - width: 320 260 | height: 180 261 | banner: {fileID: 0} 262 | androidGamepadSupportLevel: 0 263 | resolutionDialogBanner: {fileID: 0} 264 | m_BuildTargetIcons: [] 265 | m_BuildTargetPlatformIcons: [] 266 | m_BuildTargetBatching: [] 267 | m_BuildTargetGraphicsAPIs: 268 | - m_BuildTarget: AndroidPlayer 269 | m_APIs: 0b000000 270 | m_Automatic: 0 271 | - m_BuildTarget: iOSSupport 272 | m_APIs: 1000000008000000 273 | m_Automatic: 1 274 | - m_BuildTarget: LinuxStandaloneSupport 275 | m_APIs: 1100000015000000 276 | m_Automatic: 1 277 | - m_BuildTarget: WindowsStandaloneSupport 278 | m_APIs: 02000000 279 | m_Automatic: 0 280 | - m_BuildTarget: MacStandaloneSupport 281 | m_APIs: 1000000011000000 282 | m_Automatic: 1 283 | m_BuildTargetVRSettings: 284 | - m_BuildTarget: Standalone 285 | m_Enabled: 1 286 | m_Devices: 287 | - None 288 | - OpenVR 289 | - Oculus 290 | m_BuildTargetEnableVuforiaSettings: [] 291 | openGLRequireES31: 0 292 | openGLRequireES31AEP: 0 293 | m_TemplateCustomTags: {} 294 | mobileMTRendering: 295 | Android: 1 296 | iPhone: 1 297 | tvOS: 1 298 | m_BuildTargetGroupLightmapEncodingQuality: [] 299 | m_BuildTargetGroupLightmapSettings: [] 300 | playModeTestRunnerEnabled: 0 301 | runPlayModeTestAsEditModeTest: 0 302 | actionOnDotNetUnhandledException: 1 303 | enableInternalProfiler: 0 304 | logObjCUncaughtExceptions: 1 305 | enableCrashReportAPI: 0 306 | cameraUsageDescription: 307 | locationUsageDescription: 308 | microphoneUsageDescription: 309 | switchNetLibKey: 310 | switchSocketMemoryPoolSize: 6144 311 | switchSocketAllocatorPoolSize: 128 312 | switchSocketConcurrencyLimit: 14 313 | switchScreenResolutionBehavior: 2 314 | switchUseCPUProfiler: 0 315 | switchApplicationID: 0x01004b9000490000 316 | switchNSODependencies: 317 | switchTitleNames_0: 318 | switchTitleNames_1: 319 | switchTitleNames_2: 320 | switchTitleNames_3: 321 | switchTitleNames_4: 322 | switchTitleNames_5: 323 | switchTitleNames_6: 324 | switchTitleNames_7: 325 | switchTitleNames_8: 326 | switchTitleNames_9: 327 | switchTitleNames_10: 328 | switchTitleNames_11: 329 | switchTitleNames_12: 330 | switchTitleNames_13: 331 | switchTitleNames_14: 332 | switchPublisherNames_0: 333 | switchPublisherNames_1: 334 | switchPublisherNames_2: 335 | switchPublisherNames_3: 336 | switchPublisherNames_4: 337 | switchPublisherNames_5: 338 | switchPublisherNames_6: 339 | switchPublisherNames_7: 340 | switchPublisherNames_8: 341 | switchPublisherNames_9: 342 | switchPublisherNames_10: 343 | switchPublisherNames_11: 344 | switchPublisherNames_12: 345 | switchPublisherNames_13: 346 | switchPublisherNames_14: 347 | switchIcons_0: {fileID: 0} 348 | switchIcons_1: {fileID: 0} 349 | switchIcons_2: {fileID: 0} 350 | switchIcons_3: {fileID: 0} 351 | switchIcons_4: {fileID: 0} 352 | switchIcons_5: {fileID: 0} 353 | switchIcons_6: {fileID: 0} 354 | switchIcons_7: {fileID: 0} 355 | switchIcons_8: {fileID: 0} 356 | switchIcons_9: {fileID: 0} 357 | switchIcons_10: {fileID: 0} 358 | switchIcons_11: {fileID: 0} 359 | switchIcons_12: {fileID: 0} 360 | switchIcons_13: {fileID: 0} 361 | switchIcons_14: {fileID: 0} 362 | switchSmallIcons_0: {fileID: 0} 363 | switchSmallIcons_1: {fileID: 0} 364 | switchSmallIcons_2: {fileID: 0} 365 | switchSmallIcons_3: {fileID: 0} 366 | switchSmallIcons_4: {fileID: 0} 367 | switchSmallIcons_5: {fileID: 0} 368 | switchSmallIcons_6: {fileID: 0} 369 | switchSmallIcons_7: {fileID: 0} 370 | switchSmallIcons_8: {fileID: 0} 371 | switchSmallIcons_9: {fileID: 0} 372 | switchSmallIcons_10: {fileID: 0} 373 | switchSmallIcons_11: {fileID: 0} 374 | switchSmallIcons_12: {fileID: 0} 375 | switchSmallIcons_13: {fileID: 0} 376 | switchSmallIcons_14: {fileID: 0} 377 | switchManualHTML: 378 | switchAccessibleURLs: 379 | switchLegalInformation: 380 | switchMainThreadStackSize: 1048576 381 | switchPresenceGroupId: 382 | switchLogoHandling: 0 383 | switchReleaseVersion: 0 384 | switchDisplayVersion: 1.0.0 385 | switchStartupUserAccount: 0 386 | switchTouchScreenUsage: 0 387 | switchSupportedLanguagesMask: 0 388 | switchLogoType: 0 389 | switchApplicationErrorCodeCategory: 390 | switchUserAccountSaveDataSize: 0 391 | switchUserAccountSaveDataJournalSize: 0 392 | switchApplicationAttribute: 0 393 | switchCardSpecSize: -1 394 | switchCardSpecClock: -1 395 | switchRatingsMask: 0 396 | switchRatingsInt_0: 0 397 | switchRatingsInt_1: 0 398 | switchRatingsInt_2: 0 399 | switchRatingsInt_3: 0 400 | switchRatingsInt_4: 0 401 | switchRatingsInt_5: 0 402 | switchRatingsInt_6: 0 403 | switchRatingsInt_7: 0 404 | switchRatingsInt_8: 0 405 | switchRatingsInt_9: 0 406 | switchRatingsInt_10: 0 407 | switchRatingsInt_11: 0 408 | switchRatingsInt_12: 0 409 | switchLocalCommunicationIds_0: 410 | switchLocalCommunicationIds_1: 411 | switchLocalCommunicationIds_2: 412 | switchLocalCommunicationIds_3: 413 | switchLocalCommunicationIds_4: 414 | switchLocalCommunicationIds_5: 415 | switchLocalCommunicationIds_6: 416 | switchLocalCommunicationIds_7: 417 | switchParentalControl: 0 418 | switchAllowsScreenshot: 1 419 | switchAllowsVideoCapturing: 1 420 | switchAllowsRuntimeAddOnContentInstall: 0 421 | switchDataLossConfirmation: 0 422 | switchUserAccountLockEnabled: 0 423 | switchSystemResourceMemory: 16777216 424 | switchSupportedNpadStyles: 6 425 | switchNativeFsCacheSize: 32 426 | switchIsHoldTypeHorizontal: 0 427 | switchSupportedNpadCount: 8 428 | switchSocketConfigEnabled: 0 429 | switchTcpInitialSendBufferSize: 32 430 | switchTcpInitialReceiveBufferSize: 64 431 | switchTcpAutoSendBufferSizeMax: 256 432 | switchTcpAutoReceiveBufferSizeMax: 256 433 | switchUdpSendBufferSize: 9 434 | switchUdpReceiveBufferSize: 42 435 | switchSocketBufferEfficiency: 4 436 | switchSocketInitializeEnabled: 1 437 | switchNetworkInterfaceManagerInitializeEnabled: 1 438 | switchPlayerConnectionEnabled: 1 439 | ps4NPAgeRating: 12 440 | ps4NPTitleSecret: 441 | ps4NPTrophyPackPath: 442 | ps4ParentalLevel: 11 443 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000 444 | ps4Category: 0 445 | ps4MasterVersion: 01.00 446 | ps4AppVersion: 01.00 447 | ps4AppType: 0 448 | ps4ParamSfxPath: 449 | ps4VideoOutPixelFormat: 0 450 | ps4VideoOutInitialWidth: 1920 451 | ps4VideoOutBaseModeInitialWidth: 1920 452 | ps4VideoOutReprojectionRate: 60 453 | ps4PronunciationXMLPath: 454 | ps4PronunciationSIGPath: 455 | ps4BackgroundImagePath: 456 | ps4StartupImagePath: 457 | ps4StartupImagesFolder: 458 | ps4IconImagesFolder: 459 | ps4SaveDataImagePath: 460 | ps4SdkOverride: 461 | ps4BGMPath: 462 | ps4ShareFilePath: 463 | ps4ShareOverlayImagePath: 464 | ps4PrivacyGuardImagePath: 465 | ps4NPtitleDatPath: 466 | ps4RemotePlayKeyAssignment: -1 467 | ps4RemotePlayKeyMappingDir: 468 | ps4PlayTogetherPlayerCount: 0 469 | ps4EnterButtonAssignment: 2 470 | ps4ApplicationParam1: 0 471 | ps4ApplicationParam2: 0 472 | ps4ApplicationParam3: 0 473 | ps4ApplicationParam4: 0 474 | ps4DownloadDataSize: 0 475 | ps4GarlicHeapSize: 2048 476 | ps4ProGarlicHeapSize: 2560 477 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ 478 | ps4pnSessions: 1 479 | ps4pnPresence: 1 480 | ps4pnFriends: 1 481 | ps4pnGameCustomData: 1 482 | playerPrefsSupport: 0 483 | enableApplicationExit: 0 484 | resetTempFolder: 1 485 | restrictedAudioUsageRights: 0 486 | ps4UseResolutionFallback: 0 487 | ps4ReprojectionSupport: 0 488 | ps4UseAudio3dBackend: 0 489 | ps4SocialScreenEnabled: 0 490 | ps4ScriptOptimizationLevel: 2 491 | ps4Audio3dVirtualSpeakerCount: 14 492 | ps4attribCpuUsage: 0 493 | ps4PatchPkgPath: 494 | ps4PatchLatestPkgPath: 495 | ps4PatchChangeinfoPath: 496 | ps4PatchDayOne: 0 497 | ps4attribUserManagement: 0 498 | ps4attribMoveSupport: 0 499 | ps4attrib3DSupport: 0 500 | ps4attribShareSupport: 0 501 | ps4attribExclusiveVR: 0 502 | ps4disableAutoHideSplash: 0 503 | ps4videoRecordingFeaturesUsed: 0 504 | ps4contentSearchFeaturesUsed: 0 505 | ps4attribEyeToEyeDistanceSettingVR: 0 506 | ps4IncludedModules: [] 507 | monoEnv: 508 | splashScreenBackgroundSourceLandscape: {fileID: 0} 509 | splashScreenBackgroundSourcePortrait: {fileID: 0} 510 | spritePackerPolicy: 511 | webGLMemorySize: 256 512 | webGLExceptionSupport: 1 513 | webGLNameFilesAsHashes: 0 514 | webGLDataCaching: 1 515 | webGLDebugSymbols: 0 516 | webGLEmscriptenArgs: 517 | webGLModulesDirectory: 518 | webGLTemplate: APPLICATION:Default 519 | webGLAnalyzeBuildSize: 0 520 | webGLUseEmbeddedResources: 0 521 | webGLCompressionFormat: 1 522 | webGLLinkerTarget: 1 523 | webGLThreadsSupport: 0 524 | scriptingDefineSymbols: 525 | 1: VRC_SDK_VRCSDK2 526 | platformArchitecture: {} 527 | scriptingBackend: {} 528 | il2cppCompilerConfiguration: {} 529 | managedStrippingLevel: {} 530 | incrementalIl2cppBuild: {} 531 | allowUnsafeCode: 0 532 | additionalIl2CppArgs: 533 | scriptingRuntimeVersion: 1 534 | apiCompatibilityLevelPerPlatform: 535 | Standalone: 3 536 | m_RenderingPath: 1 537 | m_MobileRenderingPath: 1 538 | metroPackageName: SVM Detector 539 | metroPackageVersion: 540 | metroCertificatePath: 541 | metroCertificatePassword: 542 | metroCertificateSubject: 543 | metroCertificateIssuer: 544 | metroCertificateNotAfter: 0000000000000000 545 | metroApplicationDescription: SVM Detector 546 | wsaImages: {} 547 | metroTileShortName: 548 | metroTileShowName: 0 549 | metroMediumTileShowName: 0 550 | metroLargeTileShowName: 0 551 | metroWideTileShowName: 0 552 | metroSupportStreamingInstall: 0 553 | metroLastRequiredScene: 0 554 | metroDefaultTileSize: 1 555 | metroTileForegroundText: 2 556 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} 557 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, 558 | a: 1} 559 | metroSplashScreenUseBackgroundColor: 0 560 | platformCapabilities: {} 561 | metroTargetDeviceFamilies: {} 562 | metroFTAName: 563 | metroFTAFileTypes: [] 564 | metroProtocolName: 565 | metroCompilationOverrides: 1 566 | XboxOneProductId: 567 | XboxOneUpdateKey: 568 | XboxOneSandboxId: 569 | XboxOneContentId: 570 | XboxOneTitleId: 571 | XboxOneSCId: 572 | XboxOneGameOsOverridePath: 573 | XboxOnePackagingOverridePath: 574 | XboxOneAppManifestOverridePath: 575 | XboxOneVersion: 1.0.0.0 576 | XboxOnePackageEncryption: 0 577 | XboxOnePackageUpdateGranularity: 2 578 | XboxOneDescription: 579 | XboxOneLanguage: 580 | - enus 581 | XboxOneCapability: [] 582 | XboxOneGameRating: {} 583 | XboxOneIsContentPackage: 0 584 | XboxOneEnableGPUVariability: 1 585 | XboxOneSockets: {} 586 | XboxOneSplashScreen: {fileID: 0} 587 | XboxOneAllowedProductIds: [] 588 | XboxOnePersistentLocalStorageSize: 0 589 | XboxOneXTitleMemory: 8 590 | xboxOneScriptCompiler: 0 591 | XboxOneOverrideIdentityName: 592 | vrEditorSettings: 593 | daydream: 594 | daydreamIconForeground: {fileID: 0} 595 | daydreamIconBackground: {fileID: 0} 596 | cloudServicesEnabled: {} 597 | luminIcon: 598 | m_Name: 599 | m_ModelFolderPath: 600 | m_PortalFolderPath: 601 | luminCert: 602 | m_CertPath: 603 | m_PrivateKeyPath: 604 | luminIsChannelApp: 0 605 | luminVersion: 606 | m_VersionCode: 1 607 | m_VersionName: 608 | facebookSdkVersion: 609 | facebookAppId: 610 | facebookCookies: 1 611 | facebookLogging: 1 612 | facebookStatus: 1 613 | facebookXfbml: 0 614 | facebookFrictionlessRequests: 1 615 | apiCompatibilityLevel: 6 616 | cloudProjectId: 617 | framebufferDepthMemorylessMode: 0 618 | projectName: 619 | organizationId: 620 | cloudEnabled: 0 621 | enableNativePlatformBackendsForNewInputSystem: 0 622 | disableOldInputManagerSupport: 0 623 | legacyClampBlendShapeWeights: 0 624 | -------------------------------------------------------------------------------- /Unity/ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2018.4.20f1 2 | -------------------------------------------------------------------------------- /Unity/ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/ProjectSettings/QualitySettings.asset -------------------------------------------------------------------------------- /Unity/ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/ProjectSettings/TagManager.asset -------------------------------------------------------------------------------- /Unity/ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/ProjectSettings/TimeManager.asset -------------------------------------------------------------------------------- /Unity/ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/ProjectSettings/UnityConnectSettings.asset -------------------------------------------------------------------------------- /Unity/ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SCRN-VRC/SVM-Face-and-Object-Detection-Shader/e1067ff1c20a295deedba2dcdbde2fb6ca6aae3d/Unity/ProjectSettings/VFXManager.asset --------------------------------------------------------------------------------