{"id":13598420,"url":"https://github.com/i-saint/Unity5Effects","last_synced_at":"2025-04-10T09:31:16.453Z","repository":{"id":30824869,"uuid":"34382205","full_name":"i-saint/Unity5Effects","owner":"i-saint","description":null,"archived":false,"fork":false,"pushed_at":"2020-10-08T16:57:18.000Z","size":56405,"stargazers_count":1663,"open_issues_count":5,"forks_count":232,"subscribers_count":182,"default_branch":"master","last_synced_at":"2025-04-08T16:02:34.837Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/i-saint.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-22T09:45:31.000Z","updated_at":"2025-04-03T09:26:26.000Z","dependencies_parsed_at":"2022-08-24T14:20:40.001Z","dependency_job_id":null,"html_url":"https://github.com/i-saint/Unity5Effects","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i-saint%2FUnity5Effects","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i-saint%2FUnity5Effects/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i-saint%2FUnity5Effects/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/i-saint%2FUnity5Effects/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/i-saint","download_url":"https://codeload.github.com/i-saint/Unity5Effects/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248191692,"owners_count":21062553,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T17:00:52.437Z","updated_at":"2025-04-10T09:31:16.443Z","avatar_url":"https://github.com/i-saint.png","language":"C#","readme":"Unity5 Effects\n============\n\nUnity5 用エフェクト置き場。  \nこちらのパッケージをインポートすれば大体そのまま使えます：[IstEffects.unitypackage](https://github.com/i-saint/Unity5Effects/raw/master/Packages/IstEffects.unitypackage)  \n多くはレンダリングパスが deferred であることを前提としています。また、カメラが HDR モードである方がより望ましい結果になります。\n\n## Temporal Screen Space Reflections\n![alt text](doc/ScreenSpaceReflections.jpg)  \nスクリーンスペース反射です。  \nkode80 氏が[似たようなもの](https://github.com/kode80/kode80SSR)を公開していますが、そちらとはアルゴリズムが違い、\n若干残像が残ってしまう欠点があるものの、圧倒的に高速でクオリティも引けを取りません。  \n実装の詳細に興味があれば[こちらの記事](http://i-saint.hatenablog.com/entry/2014/12/05/174706)もどうぞ。\nまた、上記スクリーンショットの背景は[こちら](https://github.com/i-saint/RaymarchingOnUnity5)の Raymarcher によるものです。\n\n## Screen Space Shadows\n![alt text](doc/ScreenSpaceShadows.gif)  \nG-Buffer をレイマーチすることで影を出せるライトです。点光源の他に線光源も扱えるようになっています。  \nライティング処理の大部分は\u003ca href=\"http://blogs.unity3d.com/2015/02/06/extending-unity-5-rendering-pipeline-command-buffers/\"\u003e公式の CommandBuffer のサンプルプロジェクト\u003c/a\u003eから借用しています。\n\n## Screen Space Boolean\n![alt text](doc/Boolean.gif)  \nG-Buffer 加工によるスクリーンスペースブーリアン演算です。  \n重い、影を正しく処理できない、複雑な立体交差で破綻する、などいくつか問題はありますが、見た目に結構インパクトがある効果は得られます。  \n実装の詳細に興味があれば[こちらの記事 (の下の方)](http://i-saint.hatenablog.com/entry/2014/07/25/001608)もどうぞ。\n\n## Rim Light\n![alt text](doc/RimLight.jpg)  \n法線と カメラ -\u003e ピクセル位置 の角度が浅い部分を明るくするアレです。\n\n## Water Surface \u0026 Caustics Field\n![alt text](doc/WaterSurface.jpg)  \n水面とコースティクスです。  \n水面は G-Buffer をレイマーチすることで屈折をエミュレートしています。コースティクスは 3 次元ノイズで明るくしてそれっぽく見せかけています。\n\n\n## Light Particle\n![alt text](doc/LightParticle.jpg)  \n一粒一粒を Point Light として扱うパーティクルレンダラ。MassParticle の拡張。\n\n\n## Procedural Modeling\n![alt text](doc/ProceduralModeling.jpg)  \nMesh の表面を開始点としてレイマーチ (sphere tracing) することで、オブジェクトスペースで distance function をレンダリングする代物。\n上の画像は Unity ちゃん以外の背景オブジェクトは全て Cube をピクセルシェーダで加工したものです。\n\n## Metaball\n![alt text](doc/Metaball.gif)  \nレイマーチによる Metaball。完全に GPU で完結するので、MC 法などでメッシュを生成するよりはずっと高速なはずです。  \n実装には Media Molecule の方が発表した soft_min() 関数を拝借しています。([詳細](http://media.lolrus.mediamolecule.com/AlexEvans_SIGGRAPH-2015-sml.pdf)。この資料プロシージャルモデリングの類に関する情報の宝庫なのでおすすめです) また、D3D11 世代の機能 (StructuredBuffer) を使っているのでやや環境を選びます。  \n\n## Temporal SSAO\n![alt text](doc/SSAO.jpg)  \ndangerous samples を考慮することで残像対策を入れた temporal な SSAO です。  \n動いてる箇所のノイズが目立ち、ちょっと実用に耐えるとは言い難いクオリティですが、動きが少ないシーンに限れば標準 SSAO の倍くらいの速度で近いクオリティの絵が出せます。\n状況によっては役立つこともあるかもしれません。  \n[こちら](http://bitsquid.blogspot.jp/2015/09/temporal-reprojection-and-sao.html) をヒントに実装しました、が、元記事の方がずっと高度な実装になっています。いずれ元記事で言及されている SSAO の発展形にも手を出してみたいところです。\n\n### Mosaic Field\n![alt text](doc/mosaic.gif)  \n指定オブジェクトをモザイク領域化するシェーダ。\n\n\u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by/4.0/\"\u003e\u003cimg alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by/4.0/88x31.png\" /\u003e\u003c/a\u003e\u003cbr /\u003eThis work is licensed under a \u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by/4.0/\"\u003eCreative Commons Attribution 4.0 International License\u003c/a\u003e.\n","funding_links":[],"categories":["Open Source Packages","C# #","C#","Open Source Repositories"],"sub_categories":["Effect and Shaders"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fi-saint%2FUnity5Effects","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fi-saint%2FUnity5Effects","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fi-saint%2FUnity5Effects/lists"}