├── .gitignore ├── LICENSE ├── README.md ├── Visualizer.sln └── Visualizer ├── .editorconfig ├── App ├── Resource.rc ├── dll │ └── soundtouch │ │ ├── COPYING.TXT │ │ └── SoundTouch_x64.dll ├── engine │ ├── font │ │ ├── fontawesome │ │ │ ├── LICENSE.txt │ │ │ ├── fontawesome-brands.otf.zstdcmp │ │ │ └── fontawesome-solid.otf.zstdcmp │ │ ├── materialdesignicons │ │ │ ├── license.md │ │ │ └── materialdesignicons-webfont.ttf.zstdcmp │ │ ├── min │ │ │ ├── LICENSE │ │ │ └── siv3d-min.woff │ │ ├── mplus │ │ │ ├── LICENSE_E │ │ │ ├── mplus-1p-black.ttf.zstdcmp │ │ │ ├── mplus-1p-bold.ttf.zstdcmp │ │ │ ├── mplus-1p-heavy.ttf.zstdcmp │ │ │ ├── mplus-1p-light.ttf.zstdcmp │ │ │ ├── mplus-1p-medium.ttf.zstdcmp │ │ │ ├── mplus-1p-regular.ttf.zstdcmp │ │ │ └── mplus-1p-thin.ttf.zstdcmp │ │ ├── noto-cjk │ │ │ ├── LICENSE │ │ │ ├── NotoSansCJK-Regular.ttc.zstdcmp │ │ │ └── NotoSansJP-Regular.otf.zstdcmp │ │ └── noto-emoji │ │ │ ├── LICENSE │ │ │ ├── NotoColorEmoji.ttf.zstdcmp │ │ │ └── NotoEmoji-Regular.ttf.zstdcmp │ ├── shader │ │ ├── d3d11 │ │ │ ├── apply_srgb_curve.ps │ │ │ ├── bitmapfont.ps │ │ │ ├── copy.ps │ │ │ ├── forward3d.ps │ │ │ ├── forward3d.vs │ │ │ ├── fullscreen_triangle.ps │ │ │ ├── fullscreen_triangle.vs │ │ │ ├── gaussian_blur_9.ps │ │ │ ├── line3d.ps │ │ │ ├── line3d.vs │ │ │ ├── msdffont.ps │ │ │ ├── msdffont_outline.ps │ │ │ ├── msdffont_outlineshadow.ps │ │ │ ├── msdffont_shadow.ps │ │ │ ├── msdfprint.ps │ │ │ ├── round_dot.ps │ │ │ ├── sdffont.ps │ │ │ ├── sdffont_outline.ps │ │ │ ├── sdffont_outlineshadow.ps │ │ │ ├── sdffont_shadow.ps │ │ │ ├── shape.ps │ │ │ ├── sky.ps │ │ │ ├── sprite.vs │ │ │ ├── square_dot.ps │ │ │ └── texture.ps │ │ └── glsl │ │ │ ├── apply_srgb_curve.frag │ │ │ ├── bitmapfont.frag │ │ │ ├── copy.frag │ │ │ ├── forward3d.frag │ │ │ ├── forward3d.vert │ │ │ ├── fullscreen_triangle.frag │ │ │ ├── fullscreen_triangle.vert │ │ │ ├── gaussian_blur_9.frag │ │ │ ├── line3d.frag │ │ │ ├── line3d.vert │ │ │ ├── msdffont.frag │ │ │ ├── msdffont_outline.frag │ │ │ ├── msdffont_outlineshadow.frag │ │ │ ├── msdffont_shadow.frag │ │ │ ├── msdfprint.frag │ │ │ ├── round_dot.frag │ │ │ ├── sdffont.frag │ │ │ ├── sdffont_outline.frag │ │ │ ├── sdffont_outlineshadow.frag │ │ │ ├── sdffont_shadow.frag │ │ │ ├── shape.frag │ │ │ ├── sky.frag │ │ │ ├── sprite.vert │ │ │ ├── square_dot.frag │ │ │ └── texture.frag │ ├── soundfont │ │ ├── GMGSx.sf2.txt │ │ └── GMGSx.sf2.zstdcmp │ └── texture │ │ └── box-shadow │ │ ├── 128.png │ │ ├── 16.png │ │ ├── 256.png │ │ ├── 32.png │ │ ├── 64.png │ │ └── 8.png ├── example │ ├── LICENSE.txt │ ├── bay.jpg │ ├── csv │ │ └── config.csv │ ├── font │ │ ├── DotGothic16 │ │ │ ├── DotGothic16-Regular.ttf │ │ │ ├── OFL.txt │ │ │ ├── README-JP.md │ │ │ └── README.md │ │ └── RocknRoll │ │ │ ├── OFL.txt │ │ │ ├── README-JP.md │ │ │ ├── README.md │ │ │ └── RocknRollOne-Regular.ttf │ ├── geojson │ │ └── countries.geojson │ ├── gif │ │ └── test.gif │ ├── ini │ │ └── config.ini │ ├── json │ │ ├── config.json │ │ ├── empty.json │ │ ├── invalid-blank.json │ │ ├── invalid-syntax.json │ │ └── test.json │ ├── midi │ │ ├── test.mid │ │ └── test.txt │ ├── obj │ │ ├── bark.jpg │ │ ├── blacksmith.mtl │ │ ├── blacksmith.obj │ │ ├── credit.txt │ │ ├── crystal1.mtl │ │ ├── crystal1.obj │ │ ├── crystal2.mtl │ │ ├── crystal2.obj │ │ ├── crystal3.mtl │ │ ├── crystal3.obj │ │ ├── leaves.png │ │ ├── mill.mtl │ │ ├── mill.obj │ │ ├── pine.mtl │ │ ├── pine.obj │ │ ├── pine_leaves_red.png │ │ ├── siv3d-kun-eye.png │ │ ├── siv3d-kun.mtl │ │ ├── siv3d-kun.obj │ │ ├── siv3d-kun.png │ │ ├── tree.mtl │ │ └── tree.obj │ ├── objdetect │ │ └── haarcascade │ │ │ ├── eye.xml │ │ │ ├── face_anime.xml │ │ │ ├── frontal_catface.xml │ │ │ └── frontal_face_alt2.xml │ ├── particle.png │ ├── script │ │ ├── breakout.as │ │ ├── hello.as │ │ ├── paint.as │ │ ├── piano.as │ │ └── test.as │ ├── shader │ │ ├── glsl │ │ │ ├── default2d.vert │ │ │ ├── default2d_shape.frag │ │ │ ├── default2d_texture.frag │ │ │ ├── default3d_forward.frag │ │ │ ├── default3d_forward.vert │ │ │ ├── extract_bright_linear.frag │ │ │ ├── forward_fog.frag │ │ │ ├── forward_triplanar.frag │ │ │ ├── game_of_life.frag │ │ │ ├── grayscale.frag │ │ │ ├── homography.frag │ │ │ ├── homography.vert │ │ │ ├── multi_texture_blend.frag │ │ │ ├── multi_texture_mask.frag │ │ │ ├── poisson_disk.frag │ │ │ ├── posterize.frag │ │ │ ├── rgb_shift.frag │ │ │ ├── rgb_to_bgr.frag │ │ │ ├── soft_shape.vert │ │ │ ├── swirl.frag │ │ │ ├── terrain_forward.frag │ │ │ ├── terrain_forward.vert │ │ │ └── terrain_normal.frag │ │ └── hlsl │ │ │ ├── default2d.hlsl │ │ │ ├── default3d_forward.hlsl │ │ │ ├── extract_bright_linear.hlsl │ │ │ ├── forward_fog.hlsl │ │ │ ├── forward_triplanar.hlsl │ │ │ ├── game_of_life.hlsl │ │ │ ├── grayscale.hlsl │ │ │ ├── homography.hlsl │ │ │ ├── multi_texture_blend.hlsl │ │ │ ├── multi_texture_mask.hlsl │ │ │ ├── poisson_disk.hlsl │ │ │ ├── posterize.hlsl │ │ │ ├── rgb_shift.hlsl │ │ │ ├── rgb_to_bgr.hlsl │ │ │ ├── soft_shape.hlsl │ │ │ ├── swirl.hlsl │ │ │ ├── terrain_forward.hlsl │ │ │ └── terrain_normal.hlsl │ ├── shot.mp3 │ ├── siv3d-kun.png │ ├── spritesheet │ │ ├── siv3d-kun-16.png │ │ └── siv3d-kun-16.txt │ ├── svg │ │ ├── README.txt │ │ ├── cat.svg │ │ └── turtle.svg │ ├── test.mp3 │ ├── texture │ │ ├── credit.txt │ │ ├── earth.jpg │ │ ├── grass.jpg │ │ ├── ground.jpg │ │ ├── rock.jpg │ │ ├── uv.png │ │ └── wood.jpg │ ├── toml │ │ ├── config.toml │ │ └── test.toml │ ├── txt │ │ ├── en.txt │ │ ├── jp.txt │ │ ├── kr.txt │ │ └── sc.txt │ ├── video │ │ ├── river.mp4 │ │ └── river.txt │ ├── windmill.png │ ├── xml │ │ ├── config.xml │ │ └── test.xml │ └── zip │ │ └── zip_test.zip └── icon.ico ├── Button.h ├── Constant.h ├── Coordinate.h ├── ElementManege.cpp ├── ElementManege.h ├── Field.cpp ├── Field.h ├── FloatingController.h ├── Landing.h ├── LandingInterface.h ├── Main.cpp ├── Robot.cpp ├── Robot.h ├── SerialListView.h ├── SerialManeger.cpp ├── SerialManeger.h ├── SerialReader.h ├── SerialWriter.h ├── VirtualElement.cpp ├── VirtualElement.h ├── Visualizer.cpp ├── Visualizer.h ├── Visualizer.vcxproj ├── Visualizer.vcxproj.filters ├── stdafx.cpp └── stdafx.h /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 CaseyNelson 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 | # Visualizer 2 | 3 | ![image](https://user-images.githubusercontent.com/91818705/203841200-730035a2-636a-48d4-a17b-8a4aa23b5367.png) 4 | 5 | ## 🤔 Description 6 | 7 | ロボットに搭載されている紙飛行機の発射機構の操縦アプリです。 8 | 9 | 2022 年度全国高専ロボコン 四国地区大会、全国大会で使用しました。 10 | 11 | [全国高専ロボコン競技ルール](https://official-robocon.com/robocon_wp/wordpress/wp-content/uploads/2022/04/kosen2022_rulebook.pdf) 12 | 13 | ## 🐣 Download 14 | 15 | 以下のリンクから実行ファイルをダウンロードできます。 16 | 17 | [Windows x64](https://github.com/CaseyNelson314/Visualizer/releases/download/v1.0.1/Visualizer.exe) 18 | 19 | > "Windows によって PC が保護されました" と表示される場合、続けて "詳細情報" をクリックすると実行できます。 20 | 21 | curl を使用できる方はこちら。 22 | 23 | ```sh 24 | curl -OL https://github.com/CaseyNelson314/Visualizer/releases/download/v1.0.1/Visualizer.exe 25 | start .\Visualizer.exe 26 | ``` 27 | 28 | ## 💬 Usage 29 | 30 | ### ロボット操作 31 | 32 | WASD キーで平行移動、QE キーで旋回できます。 33 | 34 | ### 着陸点選択 35 | 36 | 紙飛行機の着陸点をタッチすることで選択できます。最大 2 箇所まで選択できます。 37 | 38 | ### 発射機構切り替え 39 | 40 | ロボットをタッチすることで使用する発射機構の切り替えができます。 41 | 42 | ### スタートゾーン切替 43 | 44 | スタートゾーンをタッチすることで切り替えられます。 45 | 46 | ### 浮動コントローラー 47 | 48 | ロボットへ発射機構の微調整、発射、ゼロ点取り、射出ローラー回転切替、再装填の指示を送信します。 49 | 50 | ドラッグすると画面上を自由に移動できます。 51 | 52 | ### 通信 53 | 54 | 右上の COM ポートリストからポートを選択後、OPEN ボタンを押すことで通信を開始します。 55 | 56 | ※Bluetooth 経由の COM ポートを開こうとした時、アプリが落ちる場合があります。 57 | 58 | ### その他 59 | 60 | F キーを押すことでフルスクリーンモードに切り替えられます。 61 | 62 | F1 キーを押すことで OpenSiv3D が使用しているサードパーティ・ソフトウェアのライセンス情報を表示します。 63 | 64 | ## 📗 Summary 65 | 66 | ### 通信 67 | 68 | PC とロボット間の通信の流れは以下のようになっています。 69 | 70 | 各データがまとまった構造体をバイト列に変換し送受信しています。 71 | 72 | ```mermaid 73 | flowchart LR 74 | subgraph ロボット 75 | Master[Master/Teensy4.0] <--I2C--> MasterForwarding[Teensy4.0] <--UART--> MasterIM920[IM920] 76 | end 77 | subgraph 操縦者 78 | MasterIM920 <-.920MHz.-> ToPC[IM920] <--UART--> PCForwarding[Teensy4.0] <--UART--> PC 79 | end 80 | ``` 81 | 82 | ### GUI 83 | 84 | 描画用フレームワークである OpenSiv3D を使い、C++で記述しています。 85 | 86 | 使わせていただいた OpenSiv3D のリンクです。 87 | 88 | 89 | 90 | 91 | 92 | ### Class Tree 93 | 94 | このアプリはクラスの組み合わせによって構成されています。 95 | 96 | | クラス名 | 役割 | 97 | | ------------------ | -------------------------- | 98 | | Field | 競技フィールドエリア | 99 | | Landing | 着陸点 | 100 | | FloatingController | 浮動コントローラー | 101 | | SerialListView | シリアルポートリスト(右上) | 102 | | Coordinate | 座標表示 (右下) | 103 | | SerialManager | 通信管理 | 104 | 105 | ```mermaid 106 | flowchart BT 107 | 108 | loop 109 | 110 | vis[Visualizer] --> loop 111 | 112 | Field --> VirtualElement --仮想座標から実座標に変換 --> vis 113 | 114 | Robot --> Field 115 | 116 | SerialManager --> vis 117 | SerialWriter --継承--> SerialManager 118 | SerialReader --継承--> SerialManager 119 | 120 | LandingInterface --継承--> Landing --> Field 121 | 122 | Coordinate --> vis 123 | 124 | SerialListView --> vis 125 | 126 | FloatingController --> vis 127 | ``` 128 | 129 | ## 👤 Author 130 | 131 | [CaseyNelson](https://github.com/CaseyNelson314) 132 | 133 | ## 📖 License 134 | 135 | MIT License 136 | 137 | ## 💻 Development 138 | 139 | | | | 140 | | :-: | ----------------------------------------------------- | 141 | | OS | Windows 11 Home, Pro | 142 | | IDE | Microsoft Visual Studio Community 2022 Version 17.4.4 | 143 | | SDK | OpenSiv3D v0.6.6 | 144 | -------------------------------------------------------------------------------- /Visualizer.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 17 4 | VisualStudioVersion = 17.3.32811.315 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Visualizer", "Visualizer\Visualizer.vcxproj", "{9DBE995B-E9EC-4FA8-8152-37573286FBD0}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {9DBE995B-E9EC-4FA8-8152-37573286FBD0}.Debug|x64.ActiveCfg = Debug|x64 15 | {9DBE995B-E9EC-4FA8-8152-37573286FBD0}.Debug|x64.Build.0 = Debug|x64 16 | {9DBE995B-E9EC-4FA8-8152-37573286FBD0}.Release|x64.ActiveCfg = Release|x64 17 | {9DBE995B-E9EC-4FA8-8152-37573286FBD0}.Release|x64.Build.0 = Release|x64 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {C18CCAAC-E368-4690-80BE-39C40A5E7B31} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /Visualizer/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*.{c++,cc,cpp,cppm,cxx,h,h++,hh,hpp,hxx,inl,ipp,ixx,tlh,tli}] 4 | charset = utf-8-bom 5 | insert_final_newline = true 6 | indent_size = 4 7 | indent_style = tab 8 | trim_trailing_whitespace = true 9 | 10 | cpp_generate_documentation_comments = doxygen_triple_slash 11 | cpp_indent_braces = false 12 | cpp_indent_multi_line_relative_to = innermost_parenthesis 13 | cpp_indent_within_parentheses = indent 14 | cpp_indent_preserve_within_parentheses = true 15 | cpp_indent_case_contents = true 16 | cpp_indent_case_labels = false 17 | cpp_indent_case_contents_when_block = false 18 | cpp_indent_lambda_braces_when_parameter = true 19 | cpp_indent_goto_labels = one_left 20 | cpp_indent_preprocessor = leftmost_column 21 | cpp_indent_access_specifiers = false 22 | cpp_indent_namespace_contents = true 23 | cpp_indent_preserve_comments = false 24 | cpp_new_line_before_open_brace_namespace = ignore 25 | cpp_new_line_before_open_brace_type = ignore 26 | cpp_new_line_before_open_brace_function = ignore 27 | cpp_new_line_before_open_brace_block = ignore 28 | cpp_new_line_before_open_brace_lambda = ignore 29 | cpp_new_line_scope_braces_on_separate_lines = false 30 | cpp_new_line_close_brace_same_line_empty_type = false 31 | cpp_new_line_close_brace_same_line_empty_function = false 32 | cpp_new_line_before_catch = true 33 | cpp_new_line_before_else = true 34 | cpp_new_line_before_while_in_do_while = false 35 | cpp_space_before_function_open_parenthesis = remove 36 | cpp_space_within_parameter_list_parentheses = false 37 | cpp_space_between_empty_parameter_list_parentheses = false 38 | cpp_space_after_keywords_in_control_flow_statements = true 39 | cpp_space_within_control_flow_statement_parentheses = false 40 | cpp_space_before_lambda_open_parenthesis = false 41 | cpp_space_within_cast_parentheses = false 42 | cpp_space_after_cast_close_parenthesis = false 43 | cpp_space_within_expression_parentheses = false 44 | cpp_space_before_block_open_brace = true 45 | cpp_space_between_empty_braces = false 46 | cpp_space_before_initializer_list_open_brace = false 47 | cpp_space_within_initializer_list_braces = true 48 | cpp_space_preserve_in_initializer_list = true 49 | cpp_space_before_open_square_bracket = false 50 | cpp_space_within_square_brackets = false 51 | cpp_space_before_empty_square_brackets = false 52 | cpp_space_between_empty_square_brackets = false 53 | cpp_space_group_square_brackets = true 54 | cpp_space_within_lambda_brackets = false 55 | cpp_space_between_empty_lambda_brackets = false 56 | cpp_space_before_comma = false 57 | cpp_space_after_comma = true 58 | cpp_space_remove_around_member_operators = true 59 | cpp_space_before_inheritance_colon = true 60 | cpp_space_before_constructor_colon = true 61 | cpp_space_remove_before_semicolon = true 62 | cpp_space_after_semicolon = true 63 | cpp_space_remove_around_unary_operator = true 64 | cpp_space_around_binary_operator = insert 65 | cpp_space_around_assignment_operator = insert 66 | cpp_space_pointer_reference_alignment = left 67 | cpp_space_around_ternary_operator = insert 68 | cpp_wrap_preserve_blocks = one_liners 69 | -------------------------------------------------------------------------------- /Visualizer/App/dll/soundtouch/SoundTouch_x64.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/dll/soundtouch/SoundTouch_x64.dll -------------------------------------------------------------------------------- /Visualizer/App/engine/font/fontawesome/fontawesome-brands.otf.zstdcmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/font/fontawesome/fontawesome-brands.otf.zstdcmp -------------------------------------------------------------------------------- /Visualizer/App/engine/font/fontawesome/fontawesome-solid.otf.zstdcmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/font/fontawesome/fontawesome-solid.otf.zstdcmp -------------------------------------------------------------------------------- /Visualizer/App/engine/font/materialdesignicons/materialdesignicons-webfont.ttf.zstdcmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/font/materialdesignicons/materialdesignicons-webfont.ttf.zstdcmp -------------------------------------------------------------------------------- /Visualizer/App/engine/font/min/LICENSE: -------------------------------------------------------------------------------- 1 | This Font Software is licensed under the SIL Open Font License, 2 | Version 1.1. 3 | 4 | This license is copied below, and is also available with a FAQ at: 5 | http://scripts.sil.org/OFL 6 | 7 | ----------------------------------------------------------- 8 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 9 | ----------------------------------------------------------- 10 | 11 | PREAMBLE 12 | The goals of the Open Font License (OFL) are to stimulate worldwide 13 | development of collaborative font projects, to support the font 14 | creation efforts of academic and linguistic communities, and to 15 | provide a free and open framework in which fonts may be shared and 16 | improved in partnership with others. 17 | 18 | The OFL allows the licensed fonts to be used, studied, modified and 19 | redistributed freely as long as they are not sold by themselves. The 20 | fonts, including any derivative works, can be bundled, embedded, 21 | redistributed and/or sold with any software provided that any reserved 22 | names are not used by derivative works. The fonts and derivatives, 23 | however, cannot be released under any other type of license. The 24 | requirement for fonts to remain under this license does not apply to 25 | any document created using the fonts or their derivatives. 26 | 27 | DEFINITIONS 28 | "Font Software" refers to the set of files released by the Copyright 29 | Holder(s) under this license and clearly marked as such. This may 30 | include source files, build scripts and documentation. 31 | 32 | "Reserved Font Name" refers to any names specified as such after the 33 | copyright statement(s). 34 | 35 | "Original Version" refers to the collection of Font Software 36 | components as distributed by the Copyright Holder(s). 37 | 38 | "Modified Version" refers to any derivative made by adding to, 39 | deleting, or substituting -- in part or in whole -- any of the 40 | components of the Original Version, by changing formats or by porting 41 | the Font Software to a new environment. 42 | 43 | "Author" refers to any designer, engineer, programmer, technical 44 | writer or other person who contributed to the Font Software. 45 | 46 | PERMISSION & CONDITIONS 47 | Permission is hereby granted, free of charge, to any person obtaining 48 | a copy of the Font Software, to use, study, copy, merge, embed, 49 | modify, redistribute, and sell modified and unmodified copies of the 50 | Font Software, subject to the following conditions: 51 | 52 | 1) Neither the Font Software nor any of its individual components, in 53 | Original or Modified Versions, may be sold by itself. 54 | 55 | 2) Original or Modified Versions of the Font Software may be bundled, 56 | redistributed and/or sold with any software, provided that each copy 57 | contains the above copyright notice and this license. These can be 58 | included either as stand-alone text files, human-readable headers or 59 | in the appropriate machine-readable metadata fields within text or 60 | binary files as long as those fields can be easily viewed by the user. 61 | 62 | 3) No Modified Version of the Font Software may use the Reserved Font 63 | Name(s) unless explicit written permission is granted by the 64 | corresponding Copyright Holder. This restriction only applies to the 65 | primary font name as presented to the users. 66 | 67 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 68 | Software shall not be used to promote, endorse or advertise any 69 | Modified Version, except to acknowledge the contribution(s) of the 70 | Copyright Holder(s) and the Author(s) or with their explicit written 71 | permission. 72 | 73 | 5) The Font Software, modified or unmodified, in part or in whole, 74 | must be distributed entirely under this license, and must not be 75 | distributed under any other license. The requirement for fonts to 76 | remain under this license does not apply to any document created using 77 | the Font Software. 78 | 79 | TERMINATION 80 | This license becomes null and void if any of the above conditions are 81 | not met. 82 | 83 | DISCLAIMER 84 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 85 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 86 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 87 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 88 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 89 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 90 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 91 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 92 | OTHER DEALINGS IN THE FONT SOFTWARE. 93 | -------------------------------------------------------------------------------- /Visualizer/App/engine/font/min/siv3d-min.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/font/min/siv3d-min.woff -------------------------------------------------------------------------------- /Visualizer/App/engine/font/mplus/LICENSE_E: -------------------------------------------------------------------------------- 1 | M+ FONTS Copyright (C) 2002-2019 M+ FONTS PROJECT 2 | 3 | - 4 | 5 | LICENSE_E 6 | 7 | 8 | 9 | 10 | These fonts are free software. 11 | Unlimited permission is granted to use, copy, and distribute them, with 12 | or without modification, either commercially or noncommercially. 13 | THESE FONTS ARE PROVIDED "AS IS" WITHOUT WARRANTY. 14 | 15 | 16 | http://mplus-fonts.osdn.jp 17 | -------------------------------------------------------------------------------- /Visualizer/App/engine/font/mplus/mplus-1p-black.ttf.zstdcmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/font/mplus/mplus-1p-black.ttf.zstdcmp -------------------------------------------------------------------------------- /Visualizer/App/engine/font/mplus/mplus-1p-bold.ttf.zstdcmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/font/mplus/mplus-1p-bold.ttf.zstdcmp -------------------------------------------------------------------------------- /Visualizer/App/engine/font/mplus/mplus-1p-heavy.ttf.zstdcmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/font/mplus/mplus-1p-heavy.ttf.zstdcmp -------------------------------------------------------------------------------- /Visualizer/App/engine/font/mplus/mplus-1p-light.ttf.zstdcmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/font/mplus/mplus-1p-light.ttf.zstdcmp -------------------------------------------------------------------------------- /Visualizer/App/engine/font/mplus/mplus-1p-medium.ttf.zstdcmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/font/mplus/mplus-1p-medium.ttf.zstdcmp -------------------------------------------------------------------------------- /Visualizer/App/engine/font/mplus/mplus-1p-regular.ttf.zstdcmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/font/mplus/mplus-1p-regular.ttf.zstdcmp -------------------------------------------------------------------------------- /Visualizer/App/engine/font/mplus/mplus-1p-thin.ttf.zstdcmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/font/mplus/mplus-1p-thin.ttf.zstdcmp -------------------------------------------------------------------------------- /Visualizer/App/engine/font/noto-cjk/LICENSE: -------------------------------------------------------------------------------- 1 | This Font Software is licensed under the SIL Open Font License, 2 | Version 1.1. 3 | 4 | This license is copied below, and is also available with a FAQ at: 5 | http://scripts.sil.org/OFL 6 | 7 | ----------------------------------------------------------- 8 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 9 | ----------------------------------------------------------- 10 | 11 | PREAMBLE 12 | The goals of the Open Font License (OFL) are to stimulate worldwide 13 | development of collaborative font projects, to support the font 14 | creation efforts of academic and linguistic communities, and to 15 | provide a free and open framework in which fonts may be shared and 16 | improved in partnership with others. 17 | 18 | The OFL allows the licensed fonts to be used, studied, modified and 19 | redistributed freely as long as they are not sold by themselves. The 20 | fonts, including any derivative works, can be bundled, embedded, 21 | redistributed and/or sold with any software provided that any reserved 22 | names are not used by derivative works. The fonts and derivatives, 23 | however, cannot be released under any other type of license. The 24 | requirement for fonts to remain under this license does not apply to 25 | any document created using the fonts or their derivatives. 26 | 27 | DEFINITIONS 28 | "Font Software" refers to the set of files released by the Copyright 29 | Holder(s) under this license and clearly marked as such. This may 30 | include source files, build scripts and documentation. 31 | 32 | "Reserved Font Name" refers to any names specified as such after the 33 | copyright statement(s). 34 | 35 | "Original Version" refers to the collection of Font Software 36 | components as distributed by the Copyright Holder(s). 37 | 38 | "Modified Version" refers to any derivative made by adding to, 39 | deleting, or substituting -- in part or in whole -- any of the 40 | components of the Original Version, by changing formats or by porting 41 | the Font Software to a new environment. 42 | 43 | "Author" refers to any designer, engineer, programmer, technical 44 | writer or other person who contributed to the Font Software. 45 | 46 | PERMISSION & CONDITIONS 47 | Permission is hereby granted, free of charge, to any person obtaining 48 | a copy of the Font Software, to use, study, copy, merge, embed, 49 | modify, redistribute, and sell modified and unmodified copies of the 50 | Font Software, subject to the following conditions: 51 | 52 | 1) Neither the Font Software nor any of its individual components, in 53 | Original or Modified Versions, may be sold by itself. 54 | 55 | 2) Original or Modified Versions of the Font Software may be bundled, 56 | redistributed and/or sold with any software, provided that each copy 57 | contains the above copyright notice and this license. These can be 58 | included either as stand-alone text files, human-readable headers or 59 | in the appropriate machine-readable metadata fields within text or 60 | binary files as long as those fields can be easily viewed by the user. 61 | 62 | 3) No Modified Version of the Font Software may use the Reserved Font 63 | Name(s) unless explicit written permission is granted by the 64 | corresponding Copyright Holder. This restriction only applies to the 65 | primary font name as presented to the users. 66 | 67 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 68 | Software shall not be used to promote, endorse or advertise any 69 | Modified Version, except to acknowledge the contribution(s) of the 70 | Copyright Holder(s) and the Author(s) or with their explicit written 71 | permission. 72 | 73 | 5) The Font Software, modified or unmodified, in part or in whole, 74 | must be distributed entirely under this license, and must not be 75 | distributed under any other license. The requirement for fonts to 76 | remain under this license does not apply to any document created using 77 | the Font Software. 78 | 79 | TERMINATION 80 | This license becomes null and void if any of the above conditions are 81 | not met. 82 | 83 | DISCLAIMER 84 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 85 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 86 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 87 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 88 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 89 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 90 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 91 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 92 | OTHER DEALINGS IN THE FONT SOFTWARE. 93 | -------------------------------------------------------------------------------- /Visualizer/App/engine/font/noto-cjk/NotoSansCJK-Regular.ttc.zstdcmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/font/noto-cjk/NotoSansCJK-Regular.ttc.zstdcmp -------------------------------------------------------------------------------- /Visualizer/App/engine/font/noto-cjk/NotoSansJP-Regular.otf.zstdcmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/font/noto-cjk/NotoSansJP-Regular.otf.zstdcmp -------------------------------------------------------------------------------- /Visualizer/App/engine/font/noto-emoji/NotoColorEmoji.ttf.zstdcmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/font/noto-emoji/NotoColorEmoji.ttf.zstdcmp -------------------------------------------------------------------------------- /Visualizer/App/engine/font/noto-emoji/NotoEmoji-Regular.ttf.zstdcmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/font/noto-emoji/NotoEmoji-Regular.ttf.zstdcmp -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/apply_srgb_curve.ps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/apply_srgb_curve.ps -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/bitmapfont.ps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/bitmapfont.ps -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/copy.ps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/copy.ps -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/forward3d.ps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/forward3d.ps -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/forward3d.vs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/forward3d.vs -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/fullscreen_triangle.ps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/fullscreen_triangle.ps -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/fullscreen_triangle.vs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/fullscreen_triangle.vs -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/gaussian_blur_9.ps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/gaussian_blur_9.ps -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/line3d.ps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/line3d.ps -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/line3d.vs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/line3d.vs -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/msdffont.ps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/msdffont.ps -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/msdffont_outline.ps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/msdffont_outline.ps -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/msdffont_outlineshadow.ps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/msdffont_outlineshadow.ps -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/msdffont_shadow.ps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/msdffont_shadow.ps -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/msdfprint.ps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/msdfprint.ps -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/round_dot.ps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/round_dot.ps -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/sdffont.ps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/sdffont.ps -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/sdffont_outline.ps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/sdffont_outline.ps -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/sdffont_outlineshadow.ps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/sdffont_outlineshadow.ps -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/sdffont_shadow.ps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/sdffont_shadow.ps -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/shape.ps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/shape.ps -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/sky.ps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/sky.ps -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/sprite.vs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/sprite.vs -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/square_dot.ps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/square_dot.ps -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/d3d11/texture.ps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/shader/d3d11/texture.ps -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/apply_srgb_curve.frag: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // Textures 9 | // 10 | uniform sampler2D Texture0; 11 | 12 | // 13 | // PSInput 14 | // 15 | layout(location = 0) in vec4 Color; 16 | layout(location = 1) in vec2 UV; 17 | 18 | // 19 | // PSOutput 20 | // 21 | layout(location = 0) out vec4 FragColor; 22 | 23 | // 24 | // Functions 25 | // 26 | 27 | // 28 | // https://github.com/microsoft/DirectX-Graphics-Samples/blob/master/MiniEngine/Core/Shaders/ColorSpaceUtility.hlsli 29 | // 30 | // Copyright(c) 2015 Microsoft 31 | // 32 | // Permission is hereby granted, free of charge, to any person obtaining a copy 33 | // of this software and associated documentation files(the "Software"), to deal 34 | // in the Software without restriction, including without limitation the rights 35 | // to use, copy, modify, merge, publish, distribute, sublicense, and / or sell 36 | // copies of the Software, and to permit persons to whom the Software is 37 | // furnished to do so, subject to the following conditions : 38 | // 39 | // The above copyright notice and this permission notice shall be included in 40 | // all copies or substantial portions of the Software. 41 | // 42 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 43 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 44 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE 45 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 46 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 47 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 48 | // THE SOFTWARE. 49 | float ApplySRGBCurve_Fast(float x) 50 | { 51 | return x < 0.0031308f ? 12.92f * x : 1.13005f * sqrt(x - 0.00228f) - 0.13448f * x + 0.005719f; 52 | } 53 | 54 | float ApplySRGBCurve(float x) 55 | { 56 | return x < 0.0031308f ? 12.92f * x : 1.055f * pow(x, 1.0f / 2.4f) - 0.055f; 57 | } 58 | 59 | vec3 ApplySRGBCurve0(vec3 color) 60 | { 61 | return pow(color, vec3(1.0f / 2.2f)); 62 | } 63 | 64 | vec3 ApplySRGBCurve1(vec3 color) 65 | { 66 | float r = ApplySRGBCurve_Fast(color.r); 67 | float g = ApplySRGBCurve_Fast(color.g); 68 | float b = ApplySRGBCurve_Fast(color.b); 69 | return vec3(r, g, b); 70 | } 71 | 72 | vec3 ApplySRGBCurve2(vec3 color) 73 | { 74 | float r = ApplySRGBCurve(color.r); 75 | float g = ApplySRGBCurve(color.g); 76 | float b = ApplySRGBCurve(color.b); 77 | return vec3(r, g, b); 78 | } 79 | 80 | void main() 81 | { 82 | vec3 texColor = texture(Texture0, UV).rgb; 83 | 84 | FragColor = vec4(ApplySRGBCurve2(texColor), 1.0f); 85 | } 86 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/bitmapfont.frag: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // Textures 9 | // 10 | uniform sampler2D Texture0; 11 | 12 | // 13 | // PSInput 14 | // 15 | layout(location = 0) in vec4 Color; 16 | layout(location = 1) in vec2 UV; 17 | 18 | // 19 | // PSOutput 20 | // 21 | layout(location = 0) out vec4 FragColor; 22 | 23 | // 24 | // Constant Buffer 25 | // 26 | layout(std140) uniform PSConstants2D 27 | { 28 | vec4 g_colorAdd; 29 | vec4 g_sdfParam; 30 | vec4 g_sdfOutlineColor; 31 | vec4 g_sdfShadowColor; 32 | vec4 g_internal; 33 | }; 34 | 35 | // 36 | // Functions 37 | // 38 | void main() 39 | { 40 | float textAlpha = texture(Texture0, UV).a; 41 | 42 | vec4 color = vec4(Color.rgb, Color.a * textAlpha); 43 | 44 | FragColor = (color + g_colorAdd); 45 | } 46 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/copy.frag: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // Textures 9 | // 10 | uniform sampler2D Texture0; 11 | 12 | // 13 | // PSInput 14 | // 15 | layout(location = 0) in vec4 Color; 16 | layout(location = 1) in vec2 UV; 17 | 18 | // 19 | // PSOutput 20 | // 21 | layout(location = 0) out vec4 FragColor; 22 | 23 | // 24 | // Constant Buffer 25 | // 26 | layout(std140) uniform PSConstants2D 27 | { 28 | vec4 g_colorAdd; 29 | vec4 g_sdfParam; 30 | vec4 g_sdfOutlineColor; 31 | vec4 g_sdfShadowColor; 32 | vec4 g_internal; 33 | }; 34 | 35 | // 36 | // Functions 37 | // 38 | void main() 39 | { 40 | vec4 texColor = texture(Texture0, UV); 41 | 42 | FragColor = texColor; 43 | } 44 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/forward3d.frag: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // Textures 9 | // 10 | uniform sampler2D Texture0; 11 | 12 | // 13 | // PSInput 14 | // 15 | layout(location = 0) in vec3 WorldPosition; 16 | layout(location = 1) in vec2 UV; 17 | layout(location = 2) in vec3 Normal; 18 | 19 | // 20 | // PSOutput 21 | // 22 | layout(location = 0) out vec4 FragColor; 23 | 24 | // 25 | // Constant Buffer 26 | // 27 | layout(std140) uniform PSPerFrame 28 | { 29 | vec3 g_gloablAmbientColor; 30 | vec3 g_sunColor; 31 | vec3 g_sunDirection; 32 | }; 33 | 34 | layout(std140) uniform PSPerView 35 | { 36 | vec3 g_eyePosition; 37 | }; 38 | 39 | layout(std140) uniform PSPerMaterial 40 | { 41 | vec3 g_amibientColor; 42 | uint g_hasTexture; 43 | vec4 g_diffuseColor; 44 | vec3 g_specularColor; 45 | float g_shininess; 46 | vec3 g_emissionColor; 47 | }; 48 | 49 | // 50 | // Functions 51 | // 52 | vec4 GetDiffuseColor(vec2 uv) 53 | { 54 | vec4 diffuseColor = g_diffuseColor; 55 | 56 | if (g_hasTexture == 1) 57 | { 58 | diffuseColor *= texture(Texture0, uv); 59 | } 60 | 61 | return diffuseColor; 62 | } 63 | 64 | vec3 CalculateDiffuseReflection(vec3 n, vec3 l, vec3 lightColor, vec3 diffuseColor, vec3 ambientColor) 65 | { 66 | vec3 directColor = lightColor * max(dot(n, l), 0.0f); 67 | return ((ambientColor + directColor) * diffuseColor); 68 | } 69 | 70 | vec3 CalculateSpecularReflection(vec3 n, vec3 h, float shininess, float nl, vec3 lightColor, vec3 specularColor) 71 | { 72 | float highlight = pow(max(dot(n, h), 0.0f), shininess) * float(0.0f < nl); 73 | return (lightColor * specularColor * highlight); 74 | } 75 | 76 | void main() 77 | { 78 | vec3 lightColor = g_sunColor; 79 | vec3 lightDirection = g_sunDirection; 80 | 81 | vec3 n = normalize(Normal); 82 | vec3 l = lightDirection; 83 | vec4 diffuseColor = GetDiffuseColor(UV); 84 | vec3 ambientColor = (g_amibientColor * g_gloablAmbientColor); 85 | 86 | // Diffuse 87 | vec3 diffuseReflection = CalculateDiffuseReflection(n, l, lightColor, diffuseColor.rgb, ambientColor); 88 | 89 | // Specular 90 | vec3 v = normalize(g_eyePosition - WorldPosition); 91 | vec3 h = normalize(v + lightDirection); 92 | vec3 specularReflection = CalculateSpecularReflection(n, h, g_shininess, dot(n, l), lightColor, g_specularColor); 93 | 94 | FragColor = vec4(diffuseReflection + specularReflection + g_emissionColor, diffuseColor.a); 95 | } 96 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/forward3d.vert: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // VSInput 9 | // 10 | layout(location = 0) in vec4 VertexPosition; 11 | layout(location = 1) in vec3 VertexNormal; 12 | layout(location = 2) in vec2 VertexUV; 13 | 14 | // 15 | // VSOutput 16 | // 17 | layout(location = 0) out vec3 WorldPosition; 18 | layout(location = 1) out vec2 UV; 19 | layout(location = 2) out vec3 Normal; 20 | out gl_PerVertex 21 | { 22 | vec4 gl_Position; 23 | }; 24 | 25 | // 26 | // Constant Buffer 27 | // 28 | layout(std140) uniform VSPerView 29 | { 30 | mat4x4 g_worldToProjected; 31 | }; 32 | 33 | layout(std140) uniform VSPerObject 34 | { 35 | mat4x4 g_localToWorld; 36 | }; 37 | 38 | layout(std140) uniform VSPerMaterial 39 | { 40 | vec4 g_uvTransform; 41 | }; 42 | 43 | // 44 | // Functions 45 | // 46 | void main() 47 | { 48 | vec4 worldPosition = VertexPosition * g_localToWorld; 49 | 50 | gl_Position = worldPosition * g_worldToProjected; 51 | WorldPosition = worldPosition.xyz; 52 | UV = (VertexUV * g_uvTransform.xy + g_uvTransform.zw); 53 | Normal = VertexNormal * mat3x3(g_localToWorld); 54 | } 55 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/fullscreen_triangle.frag: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // Textures 9 | // 10 | uniform sampler2D Texture0; 11 | 12 | // 13 | // PSInput 14 | // 15 | layout(location = 0) in vec2 UV; 16 | 17 | // 18 | // PSOutput 19 | // 20 | layout(location = 0) out vec4 FragColor; 21 | 22 | // 23 | // Functions 24 | // 25 | void main() 26 | { 27 | FragColor = texture(Texture0, UV); 28 | } 29 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/fullscreen_triangle.vert: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // VSOutput 9 | // 10 | layout(location = 0) out vec2 UV; 11 | out gl_PerVertex 12 | { 13 | vec4 gl_Position; 14 | }; 15 | 16 | // 17 | // Functions 18 | // 19 | void main() 20 | { 21 | float x = -1.0 + float((gl_VertexID & 1) << 2); 22 | float y = -1.0 + float((gl_VertexID & 2) << 1); 23 | gl_Position = vec4(x, y, 0, 1); 24 | 25 | UV.x = (x + 1.0) * 0.5; 26 | UV.y = (-y + 1.0) * 0.5; 27 | } 28 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/gaussian_blur_9.frag: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // Textures 9 | // 10 | uniform sampler2D Texture0; 11 | 12 | // 13 | // PSInput 14 | // 15 | layout(location = 0) in vec4 Color; 16 | layout(location = 1) in vec2 UV; 17 | 18 | // 19 | // PSOutput 20 | // 21 | layout(location = 0) out vec4 FragColor; 22 | 23 | // 24 | // Constant Buffer 25 | // 26 | layout(std140) uniform PSConstants2D 27 | { 28 | vec4 g_colorAdd; 29 | vec4 g_sdfParam; 30 | vec4 g_sdfOutlineColor; 31 | vec4 g_sdfShadowColor; 32 | vec2 g_pixelSize; 33 | vec2 g_direction; 34 | }; 35 | 36 | // 37 | // Functions 38 | // 39 | void main() 40 | { 41 | // 42 | // http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/ 43 | // 44 | vec2 offset1 = 1.38461538461538 * g_direction; 45 | vec2 offset2 = 3.23076923076923 * g_direction; 46 | 47 | vec4 color = texture(Texture0, UV) * 0.227027027027027; 48 | color += texture(Texture0, UV + (offset1 * g_pixelSize)) * 0.316216216216216; 49 | color += texture(Texture0, UV - (offset1 * g_pixelSize)) * 0.316216216216216; 50 | color += texture(Texture0, UV + (offset2 * g_pixelSize)) * 0.070270270270270; 51 | color += texture(Texture0, UV - (offset2 * g_pixelSize)) * 0.070270270270270; 52 | 53 | FragColor = color; 54 | } 55 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/line3d.frag: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // PSInput 9 | // 10 | layout(location = 0) in vec3 WorldPosition; 11 | layout(location = 1) in vec4 Color; 12 | 13 | // 14 | // PSOutput 15 | // 16 | layout(location = 0) out vec4 FragColor; 17 | 18 | // 19 | // Functions 20 | // 21 | void main() 22 | { 23 | FragColor = Color; 24 | } 25 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/line3d.vert: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // VSInput 9 | // 10 | layout(location = 0) in vec4 VertexPosition; 11 | layout(location = 1) in vec4 VertexColor; 12 | 13 | // 14 | // VSOutput 15 | // 16 | layout(location = 0) out vec3 WorldPosition; 17 | layout(location = 1) out vec4 Color; 18 | out gl_PerVertex 19 | { 20 | vec4 gl_Position; 21 | }; 22 | 23 | // 24 | // Constant Buffer 25 | // 26 | layout(std140) uniform VSPerView 27 | { 28 | mat4x4 g_worldToProjected; 29 | }; 30 | 31 | layout(std140) uniform VSPerObject 32 | { 33 | mat4x4 g_localToWorld; 34 | }; 35 | 36 | // 37 | // Functions 38 | // 39 | void main() 40 | { 41 | vec4 worldPosition = VertexPosition * g_localToWorld; 42 | 43 | gl_Position = worldPosition * g_worldToProjected; 44 | WorldPosition = worldPosition.xyz; 45 | Color = VertexColor; 46 | } 47 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/msdffont.frag: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // Textures 9 | // 10 | uniform sampler2D Texture0; 11 | 12 | // 13 | // PSInput 14 | // 15 | layout(location = 0) in vec4 Color; 16 | layout(location = 1) in vec2 UV; 17 | 18 | // 19 | // PSOutput 20 | // 21 | layout(location = 0) out vec4 FragColor; 22 | 23 | // 24 | // Constant Buffer 25 | // 26 | layout(std140) uniform PSConstants2D 27 | { 28 | vec4 g_colorAdd; 29 | vec4 g_sdfParam; 30 | vec4 g_sdfOutlineColor; 31 | vec4 g_sdfShadowColor; 32 | vec4 g_internal; 33 | }; 34 | 35 | // 36 | // Functions 37 | // 38 | float median(float r, float g, float b) 39 | { 40 | return max(min(r, g), min(max(r, g), b)); 41 | } 42 | 43 | void main() 44 | { 45 | vec2 size = textureSize(Texture0, 0); 46 | const float pxRange = 4.0; 47 | vec2 msdfUnit = (pxRange / size); 48 | 49 | vec3 s = texture(Texture0, UV).rgb; 50 | float d = median(s.r, s.g, s.b); 51 | 52 | float td = (d - 0.5); 53 | float textAlpha = clamp(td * dot(msdfUnit, 0.5 / fwidth(UV)) + 0.5, 0.0, 1.0); 54 | 55 | vec4 color = vec4(Color.rgb, Color.a * textAlpha); 56 | 57 | FragColor = (color + g_colorAdd); 58 | } 59 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/msdffont_outline.frag: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // Textures 9 | // 10 | uniform sampler2D Texture0; 11 | 12 | // 13 | // PSInput 14 | // 15 | layout(location = 0) in vec4 Color; 16 | layout(location = 1) in vec2 UV; 17 | 18 | // 19 | // PSOutput 20 | // 21 | layout(location = 0) out vec4 FragColor; 22 | 23 | // 24 | // Constant Buffer 25 | // 26 | layout(std140) uniform PSConstants2D 27 | { 28 | vec4 g_colorAdd; 29 | vec4 g_sdfParam; 30 | vec4 g_sdfOutlineColor; 31 | vec4 g_sdfShadowColor; 32 | vec4 g_internal; 33 | }; 34 | 35 | // 36 | // Functions 37 | // 38 | float median(float r, float g, float b) 39 | { 40 | return max(min(r, g), min(max(r, g), b)); 41 | } 42 | 43 | void main() 44 | { 45 | vec2 size = textureSize(Texture0, 0); 46 | const float pxRange = 4.0; 47 | vec2 msdfUnit = (pxRange / size); 48 | 49 | vec3 s = texture(Texture0, UV).rgb; 50 | float d = median(s.r, s.g, s.b); 51 | 52 | float od = (d - g_sdfParam.y); 53 | float outlineAlpha = clamp(od * dot(msdfUnit, 0.5 / fwidth(UV)) + 0.5, 0.0, 1.0); 54 | 55 | float td = (d - g_sdfParam.x); 56 | float textAlpha = clamp(td * dot(msdfUnit, 0.5 / fwidth(UV)) + 0.5, 0.0, 1.0); 57 | 58 | float baseAlpha = (outlineAlpha - textAlpha); 59 | 60 | vec4 color; 61 | color.rgb = mix(g_sdfOutlineColor.rgb, Color.rgb, textAlpha); 62 | color.a = baseAlpha * g_sdfOutlineColor.a + textAlpha * Color.a; 63 | 64 | FragColor = (color + g_colorAdd); 65 | } 66 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/msdffont_outlineshadow.frag: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // Textures 9 | // 10 | uniform sampler2D Texture0; 11 | 12 | // 13 | // PSInput 14 | // 15 | layout(location = 0) in vec4 Color; 16 | layout(location = 1) in vec2 UV; 17 | 18 | // 19 | // PSOutput 20 | // 21 | layout(location = 0) out vec4 FragColor; 22 | 23 | // 24 | // Constant Buffer 25 | // 26 | layout(std140) uniform PSConstants2D 27 | { 28 | vec4 g_colorAdd; 29 | vec4 g_sdfParam; 30 | vec4 g_sdfOutlineColor; 31 | vec4 g_sdfShadowColor; 32 | vec4 g_internal; 33 | }; 34 | 35 | // 36 | // Functions 37 | // 38 | float median(float r, float g, float b) 39 | { 40 | return max(min(r, g), min(max(r, g), b)); 41 | } 42 | 43 | void main() 44 | { 45 | vec2 size = textureSize(Texture0, 0); 46 | const float pxRange = 4.0; 47 | vec2 msdfUnit = (pxRange / size); 48 | 49 | vec3 s = texture(Texture0, UV).rgb; 50 | float d = median(s.r, s.g, s.b); 51 | 52 | float od = (d - g_sdfParam.y); 53 | float outlineAlpha = clamp(od * dot(msdfUnit, 0.5 / fwidth(UV)) + 0.5, 0.0, 1.0); 54 | 55 | float td = (d - g_sdfParam.x); 56 | float textAlpha = clamp(td * dot(msdfUnit, 0.5 / fwidth(UV)) + 0.5, 0.0, 1.0); 57 | 58 | float baseAlpha = (outlineAlpha - textAlpha); 59 | 60 | vec4 textColor; 61 | textColor.rgb = mix(g_sdfOutlineColor.rgb, Color.rgb, textAlpha); 62 | textColor.a = baseAlpha * g_sdfOutlineColor.a + textAlpha * Color.a; 63 | 64 | 65 | vec2 shadowOffset = (g_sdfParam.zw / size); 66 | vec3 s2 = texture(Texture0, UV - shadowOffset).rgb; 67 | float d2 = median(s2.r, s2.g, s2.b); 68 | 69 | float sd = (d2 - 0.5); 70 | float shadowAlpha = clamp(sd * dot(msdfUnit, 0.5 / fwidth(UV)) + 0.5, 0.0, 1.0); 71 | float sBase = shadowAlpha * (1.0 - textColor.a); 72 | 73 | vec4 color; 74 | if (textColor.a == 0.0) 75 | { 76 | color.rgb = g_sdfShadowColor.rgb; 77 | } 78 | else 79 | { 80 | color.rgb = mix(textColor.rgb, g_sdfShadowColor.rgb, sBase); 81 | } 82 | color.a = (sBase * g_sdfShadowColor.a) + textColor.a; 83 | 84 | FragColor = (color + g_colorAdd); 85 | } 86 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/msdffont_shadow.frag: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // Textures 9 | // 10 | uniform sampler2D Texture0; 11 | 12 | // 13 | // PSInput 14 | // 15 | layout(location = 0) in vec4 Color; 16 | layout(location = 1) in vec2 UV; 17 | 18 | // 19 | // PSOutput 20 | // 21 | layout(location = 0) out vec4 FragColor; 22 | 23 | // 24 | // Constant Buffer 25 | // 26 | layout(std140) uniform PSConstants2D 27 | { 28 | vec4 g_colorAdd; 29 | vec4 g_sdfParam; 30 | vec4 g_sdfOutlineColor; 31 | vec4 g_sdfShadowColor; 32 | vec4 g_internal; 33 | }; 34 | 35 | // 36 | // Functions 37 | // 38 | float median(float r, float g, float b) 39 | { 40 | return max(min(r, g), min(max(r, g), b)); 41 | } 42 | 43 | void main() 44 | { 45 | vec2 size = textureSize(Texture0, 0); 46 | const float pxRange = 4.0; 47 | vec2 msdfUnit = (pxRange / size); 48 | 49 | vec3 s = texture(Texture0, UV).rgb; 50 | float d = median(s.r, s.g, s.b); 51 | 52 | float td = (d - 0.5); 53 | float textAlpha = clamp(td * dot(msdfUnit, 0.5 / fwidth(UV)) + 0.5, 0.0, 1.0); 54 | 55 | vec2 shadowOffset = (g_sdfParam.zw / size); 56 | vec3 s2 = texture(Texture0, UV - shadowOffset).rgb; 57 | float d2 = median(s2.r, s2.g, s2.b); 58 | 59 | float sd = (d2 - 0.5); 60 | float shadowAlpha = clamp(sd * dot(msdfUnit, 0.5 / fwidth(UV)) + 0.5, 0.0, 1.0); 61 | float sBase = shadowAlpha * (1.0 - textAlpha); 62 | 63 | vec4 color; 64 | if (textAlpha == 0.0) 65 | { 66 | color.rgb = g_sdfShadowColor.rgb; 67 | } 68 | else 69 | { 70 | color.rgb = mix(Color.rgb, g_sdfShadowColor.rgb, sBase); 71 | } 72 | color.a = (sBase * g_sdfShadowColor.a) + (textAlpha * Color.a); 73 | 74 | FragColor = (color + g_colorAdd); 75 | } 76 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/msdfprint.frag: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // Textures 9 | // 10 | uniform sampler2D Texture0; 11 | 12 | // 13 | // PSInput 14 | // 15 | layout(location = 0) in vec4 Color; 16 | layout(location = 1) in vec2 UV; 17 | 18 | // 19 | // PSOutput 20 | // 21 | layout(location = 0) out vec4 FragColor; 22 | 23 | // 24 | // Constant Buffer 25 | // 26 | layout(std140) uniform PSConstants2D 27 | { 28 | vec4 g_colorAdd; 29 | vec4 g_sdfParam; 30 | vec4 g_sdfOutlineColor; 31 | vec4 g_sdfShadowColor; 32 | vec4 g_internal; 33 | }; 34 | 35 | // 36 | // Functions 37 | // 38 | float median(float r, float g, float b) 39 | { 40 | return max(min(r, g), min(max(r, g), b)); 41 | } 42 | 43 | void main() 44 | { 45 | vec2 size = textureSize(Texture0, 0); 46 | const float pxRange = 4.0; 47 | vec2 msdfUnit = (pxRange / size); 48 | 49 | vec3 s = texture(Texture0, UV).rgb; 50 | float d = median(s.r, s.g, s.b); 51 | 52 | float td = (d - 0.5); 53 | float textAlpha = sqrt(clamp(td * dot(msdfUnit, 0.5 / fwidth(UV)) + 0.5, 0.0, 1.0)); 54 | 55 | vec2 shadowOffset = vec2(0.875, 0.875) / size; 56 | vec3 s2 = texture(Texture0, UV - shadowOffset).rgb; 57 | float d2 = median(s2.r, s2.g, s2.b); 58 | float sd = (d2 - 0.5); 59 | float shadowAlpha = sqrt(clamp(sd * dot(msdfUnit, 0.5 / fwidth(UV)) + 0.5, 0.0, 1.0)); 60 | 61 | FragColor = vec4(textAlpha, textAlpha, textAlpha, max(textAlpha, shadowAlpha)); 62 | } 63 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/round_dot.frag: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // PSInput 9 | // 10 | layout(location = 0) in vec4 Color; 11 | layout(location = 1) in vec2 UV; 12 | 13 | // 14 | // PSOutput 15 | // 16 | layout(location = 0) out vec4 FragColor; 17 | 18 | // 19 | // Constant Buffer 20 | // 21 | layout(std140) uniform PSConstants2D 22 | { 23 | vec4 g_colorAdd; 24 | vec4 g_sdfParam; 25 | vec4 g_sdfOutlineColor; 26 | vec4 g_sdfShadowColor; 27 | vec4 g_internal; 28 | }; 29 | 30 | // 31 | // Functions 32 | // 33 | void main() 34 | { 35 | float t = mod(UV.x, 2.0); 36 | vec2 tex = UV; 37 | tex.x = abs(1 - t) * 2.0; 38 | vec4 color = Color; 39 | 40 | float dist = dot(tex, tex) * 0.5; 41 | float delta = fwidth(dist); 42 | float alpha = smoothstep(0.5 - delta, 0.5, dist); 43 | color.a *= 1.0 - alpha; 44 | 45 | FragColor = (color + g_colorAdd); 46 | } 47 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/sdffont.frag: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // Textures 9 | // 10 | uniform sampler2D Texture0; 11 | 12 | // 13 | // PSInput 14 | // 15 | layout(location = 0) in vec4 Color; 16 | layout(location = 1) in vec2 UV; 17 | 18 | // 19 | // PSOutput 20 | // 21 | layout(location = 0) out vec4 FragColor; 22 | 23 | // 24 | // Constant Buffer 25 | // 26 | layout(std140) uniform PSConstants2D 27 | { 28 | vec4 g_colorAdd; 29 | vec4 g_sdfParam; 30 | vec4 g_sdfOutlineColor; 31 | vec4 g_sdfShadowColor; 32 | vec4 g_internal; 33 | }; 34 | 35 | // 36 | // Functions 37 | // 38 | void main() 39 | { 40 | float d = texture(Texture0, UV).a; 41 | 42 | float td = (d - 0.5); 43 | float textAlpha = clamp(td / fwidth(td) + 0.5, 0.0, 1.0); 44 | 45 | vec4 color = vec4(Color.rgb, Color.a * textAlpha); 46 | 47 | FragColor = (color + g_colorAdd); 48 | } 49 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/sdffont_outline.frag: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // Textures 9 | // 10 | uniform sampler2D Texture0; 11 | 12 | // 13 | // PSInput 14 | // 15 | layout(location = 0) in vec4 Color; 16 | layout(location = 1) in vec2 UV; 17 | 18 | // 19 | // PSOutput 20 | // 21 | layout(location = 0) out vec4 FragColor; 22 | 23 | // 24 | // Constant Buffer 25 | // 26 | layout(std140) uniform PSConstants2D 27 | { 28 | vec4 g_colorAdd; 29 | vec4 g_sdfParam; 30 | vec4 g_sdfOutlineColor; 31 | vec4 g_sdfShadowColor; 32 | vec4 g_internal; 33 | }; 34 | 35 | // 36 | // Functions 37 | // 38 | void main() 39 | { 40 | float d = texture(Texture0, UV).a; 41 | 42 | float od = (d - g_sdfParam.y); 43 | float outlineAlpha = clamp(od / fwidth(od) + 0.5, 0.0, 1.0); 44 | 45 | float td = (d - g_sdfParam.x); 46 | float textAlpha = clamp(td / fwidth(td) + 0.5, 0.0, 1.0); 47 | 48 | float baseAlpha = (outlineAlpha - textAlpha); 49 | 50 | vec4 color; 51 | color.rgb = mix(g_sdfOutlineColor.rgb, Color.rgb, textAlpha); 52 | color.a = baseAlpha * g_sdfOutlineColor.a + textAlpha * Color.a; 53 | 54 | FragColor = (color + g_colorAdd); 55 | } 56 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/sdffont_outlineshadow.frag: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // Textures 9 | // 10 | uniform sampler2D Texture0; 11 | 12 | // 13 | // PSInput 14 | // 15 | layout(location = 0) in vec4 Color; 16 | layout(location = 1) in vec2 UV; 17 | 18 | // 19 | // PSOutput 20 | // 21 | layout(location = 0) out vec4 FragColor; 22 | 23 | // 24 | // Constant Buffer 25 | // 26 | layout(std140) uniform PSConstants2D 27 | { 28 | vec4 g_colorAdd; 29 | vec4 g_sdfParam; 30 | vec4 g_sdfOutlineColor; 31 | vec4 g_sdfShadowColor; 32 | vec4 g_internal; 33 | }; 34 | 35 | // 36 | // Functions 37 | // 38 | void main() 39 | { 40 | float d = texture(Texture0, UV).a; 41 | 42 | float od = (d - g_sdfParam.y); 43 | float outlineAlpha = clamp(od / fwidth(od) + 0.5, 0.0, 1.0); 44 | 45 | float td = (d - g_sdfParam.x); 46 | float textAlpha = clamp(td / fwidth(td) + 0.5, 0.0, 1.0); 47 | 48 | float baseAlpha = (outlineAlpha - textAlpha); 49 | 50 | vec4 textColor; 51 | textColor.rgb = mix(g_sdfOutlineColor.rgb, Color.rgb, textAlpha); 52 | textColor.a = baseAlpha * g_sdfOutlineColor.a + textAlpha * Color.a; 53 | 54 | 55 | vec2 size = textureSize(Texture0, 0); 56 | vec2 shadowOffset = (g_sdfParam.zw / size); 57 | float d2 = texture(Texture0, UV - shadowOffset).a; 58 | 59 | float sd = (d2 - g_sdfParam.y); 60 | float shadowAlpha = clamp(sd / fwidth(sd) + 0.5, 0.0, 1.0); 61 | float sBase = shadowAlpha * (1.0 - textColor.a); 62 | 63 | vec4 color; 64 | if (textColor.a == 0.0) 65 | { 66 | color.rgb = g_sdfShadowColor.rgb; 67 | } 68 | else 69 | { 70 | color.rgb = mix(textColor.rgb, g_sdfShadowColor.rgb, sBase); 71 | } 72 | color.a = (sBase * g_sdfShadowColor.a) + textColor.a; 73 | 74 | FragColor = (color + g_colorAdd); 75 | } 76 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/sdffont_shadow.frag: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // Textures 9 | // 10 | uniform sampler2D Texture0; 11 | 12 | // 13 | // PSInput 14 | // 15 | layout(location = 0) in vec4 Color; 16 | layout(location = 1) in vec2 UV; 17 | 18 | // 19 | // PSOutput 20 | // 21 | layout(location = 0) out vec4 FragColor; 22 | 23 | // 24 | // Constant Buffer 25 | // 26 | layout(std140) uniform PSConstants2D 27 | { 28 | vec4 g_colorAdd; 29 | vec4 g_sdfParam; 30 | vec4 g_sdfOutlineColor; 31 | vec4 g_sdfShadowColor; 32 | vec4 g_internal; 33 | }; 34 | 35 | // 36 | // Functions 37 | // 38 | void main() 39 | { 40 | float d = texture(Texture0, UV).a; 41 | 42 | float td = (d - 0.5); 43 | float textAlpha = clamp(td / fwidth(td) + 0.5, 0.0, 1.0); 44 | 45 | vec2 size = textureSize(Texture0, 0); 46 | vec2 shadowOffset = (g_sdfParam.zw / size); 47 | float d2 = texture(Texture0, UV - shadowOffset).a; 48 | 49 | float sd = (d2 - 0.5); 50 | float shadowAlpha = clamp(sd / fwidth(sd) + 0.5, 0.0, 1.0); 51 | float sBase = shadowAlpha * (1.0 - textAlpha); 52 | 53 | vec4 color; 54 | if (textAlpha == 0.0) 55 | { 56 | color.rgb = g_sdfShadowColor.rgb; 57 | } 58 | else 59 | { 60 | color.rgb = mix(Color.rgb, g_sdfShadowColor.rgb, sBase); 61 | } 62 | color.a = (sBase * g_sdfShadowColor.a) + (textAlpha * Color.a); 63 | 64 | FragColor = (color + g_colorAdd); 65 | } 66 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/shape.frag: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // PSInput 9 | // 10 | layout(location = 0) in vec4 Color; 11 | 12 | // 13 | // PSOutput 14 | // 15 | layout(location = 0) out vec4 FragColor; 16 | 17 | // 18 | // Constant Buffer 19 | // 20 | layout(std140) uniform PSConstants2D 21 | { 22 | vec4 g_colorAdd; 23 | vec4 g_sdfParam; 24 | vec4 g_sdfOutlineColor; 25 | vec4 g_sdfShadowColor; 26 | vec4 g_internal; 27 | }; 28 | 29 | // 30 | // Functions 31 | // 32 | void main() 33 | { 34 | FragColor = (Color + g_colorAdd); 35 | } 36 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/sprite.vert: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // VSInput 9 | // 10 | layout(location = 0) in vec2 VertexPosition; 11 | layout(location = 1) in vec2 VertexUV; 12 | layout(location = 2) in vec4 VertexColor; 13 | 14 | // 15 | // VSOutput 16 | // 17 | layout(location = 0) out vec4 Color; 18 | layout(location = 1) out vec2 UV; 19 | out gl_PerVertex 20 | { 21 | vec4 gl_Position; 22 | }; 23 | 24 | // 25 | // Siv3D Functions 26 | // 27 | vec4 s3d_Transform2D(const vec2 pos, const vec4 t[2]) 28 | { 29 | return vec4(t[0].zw + (pos.x * t[0].xy) + (pos.y * t[1].xy), t[1].zw); 30 | } 31 | 32 | // 33 | // Constant Buffer 34 | // 35 | layout(std140) uniform VSConstants2D 36 | { 37 | vec4 g_transform[2]; 38 | vec4 g_colorMul; 39 | }; 40 | 41 | // 42 | // Functions 43 | // 44 | void main() 45 | { 46 | gl_Position = s3d_Transform2D(VertexPosition, g_transform); 47 | 48 | Color = (VertexColor * g_colorMul); 49 | 50 | UV = VertexUV; 51 | } 52 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/square_dot.frag: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // PSInput 9 | // 10 | layout(location = 0) in vec4 Color; 11 | layout(location = 1) in vec2 UV; 12 | 13 | // 14 | // PSOutput 15 | // 16 | layout(location = 0) out vec4 FragColor; 17 | 18 | // 19 | // Constant Buffer 20 | // 21 | layout(std140) uniform PSConstants2D 22 | { 23 | vec4 g_colorAdd; 24 | vec4 g_sdfParam; 25 | vec4 g_sdfOutlineColor; 26 | vec4 g_sdfShadowColor; 27 | vec4 g_internal; 28 | }; 29 | 30 | // 31 | // Functions 32 | // 33 | void main() 34 | { 35 | float tr = UV.y; 36 | float d = abs(mod(UV.x, 3.0) - 1.0); 37 | float range = 1.0 - tr; 38 | vec4 color = Color; 39 | color.a *= (d < range) ? 1.0 : (d < 1.0) ? ((1.0 - d) / tr) : 0.0; 40 | 41 | FragColor = (color + g_colorAdd); 42 | } 43 | -------------------------------------------------------------------------------- /Visualizer/App/engine/shader/glsl/texture.frag: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008-2022 Ryo Suzuki. 2 | // Copyright (c) 2016-2022 OpenSiv3D Project. 3 | // Licensed under the MIT License. 4 | 5 | # version 410 6 | 7 | // 8 | // Textures 9 | // 10 | uniform sampler2D Texture0; 11 | 12 | // 13 | // PSInput 14 | // 15 | layout(location = 0) in vec4 Color; 16 | layout(location = 1) in vec2 UV; 17 | 18 | // 19 | // PSOutput 20 | // 21 | layout(location = 0) out vec4 FragColor; 22 | 23 | // 24 | // Constant Buffer 25 | // 26 | layout(std140) uniform PSConstants2D 27 | { 28 | vec4 g_colorAdd; 29 | vec4 g_sdfParam; 30 | vec4 g_sdfOutlineColor; 31 | vec4 g_sdfShadowColor; 32 | vec4 g_internal; 33 | }; 34 | 35 | // 36 | // Functions 37 | // 38 | void main() 39 | { 40 | vec4 texColor = texture(Texture0, UV); 41 | 42 | FragColor = ((texColor * Color) + g_colorAdd); 43 | } 44 | -------------------------------------------------------------------------------- /Visualizer/App/engine/soundfont/GMGSx.sf2.txt: -------------------------------------------------------------------------------- 1 | GMGSx.sf2 is soundfont created by Kenneth Rundt author of Synthfont. 2 | It is public domain licensed and has similar sound output as gm.dls or Roland gs.sf2. 3 | It can be obtained in Synthfont 2 installation folder. -------------------------------------------------------------------------------- /Visualizer/App/engine/soundfont/GMGSx.sf2.zstdcmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/soundfont/GMGSx.sf2.zstdcmp -------------------------------------------------------------------------------- /Visualizer/App/engine/texture/box-shadow/128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/texture/box-shadow/128.png -------------------------------------------------------------------------------- /Visualizer/App/engine/texture/box-shadow/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/texture/box-shadow/16.png -------------------------------------------------------------------------------- /Visualizer/App/engine/texture/box-shadow/256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/texture/box-shadow/256.png -------------------------------------------------------------------------------- /Visualizer/App/engine/texture/box-shadow/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/texture/box-shadow/32.png -------------------------------------------------------------------------------- /Visualizer/App/engine/texture/box-shadow/64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/texture/box-shadow/64.png -------------------------------------------------------------------------------- /Visualizer/App/engine/texture/box-shadow/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/engine/texture/box-shadow/8.png -------------------------------------------------------------------------------- /Visualizer/App/example/LICENSE.txt: -------------------------------------------------------------------------------- 1 | - siv3d-kun.png 2 | (c) 2015-2021 Siv3D, licensed under a CC BY-NC: http://creativecommons.org/licenses/by-nc/4.0/ 3 | 4 | - windmill.png 5 | To the extent possible under law, Siv3D has waived all copyright and related or neighboring rights to windmill.png. This work is published from: Japan. 6 | 7 | - bay.jpg 8 | To the extent possible under law, Siv3D has waived all copyright and related or neighboring rights to bay.jpg. This work is published from: Japan. 9 | -------------------------------------------------------------------------------- /Visualizer/App/example/bay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/example/bay.jpg -------------------------------------------------------------------------------- /Visualizer/App/example/csv/config.csv: -------------------------------------------------------------------------------- 1 | Name,Value 2 | Window.title,"My application" 3 | Window.width,800 4 | Window.height,600 5 | Window.sizable,false 6 | Scene.background,"(0.8, 0.9, 1.0)" 7 | Array.values,"11, 22, 33, 44, 55" 8 | Items.count,3 9 | Item.label,"Forest" 10 | Item.pos,"(100, 100)" 11 | Item.label,"Ocean" 12 | Item.pos,"(300, 200)" 13 | Item.label,"Mountain" 14 | Item.pos,"(500, 100)" 15 | -------------------------------------------------------------------------------- /Visualizer/App/example/font/DotGothic16/DotGothic16-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/example/font/DotGothic16/DotGothic16-Regular.ttf -------------------------------------------------------------------------------- /Visualizer/App/example/font/DotGothic16/README-JP.md: -------------------------------------------------------------------------------- 1 | [English](https://github.com/fontworks-fonts/DotGothic16) /[日本語](README-JP.md) 2 | 3 | ![DotGothic16-Regular](./image_DotGothic16.png) 4 | 5 | ## ドットゴシック16-Regular 6 | 7 | 昔のドット文字のゲーム画面や、携帯、パソコン画面の雰囲気を印刷物で表現できる書体です。ドット文字ながらも16×16のゴシック体のビットマップをベースに開発された書体なので、可読性が高いことが特徴です。 近年のドット絵人気も相まって、需要がますます高まっています。 8 | このフォントについての詳しい情報は[こちら](https://fontworks.co.jp/fontsearch/dotgothic16std-m/)をご覧ください。 9 | 10 | 11 | ### フォントのダウンロード 12 | 13 | 以下のページより、ビルド済みのTrueTypeフォントをダウンロードできます。 14 | 15 | [最終リリース](https://github.com/fontworks-fonts/DotGothic16/tree/master/fonts/ttf) 16 | 17 | 18 | ### ソースからのフォントのビルド手順 19 | 20 | #### 要件 21 | 22 | * [python3](https://www.python.org/) 23 | * [fontmake](https://github.com/googlefonts/fontmake/) 24 | * [fonttools](https://github.com/fonttools/fonttools/) 25 | * [ttfautohint](https://www.freetype.org/ttfautohint/doc/ttfautohint.html) 26 | 27 | 28 | #### フォントのビルド 29 | 30 | ワーキングディレクトリ(カレントディレクトリ)を「DotGothic16」フォルダへ変更し、**build.py**を実行します。 31 | 32 | $ python build.py 33 | 34 | 35 | ### ライセンス 36 | 37 | * 個人利用・商用利用にかかわらずどなたでも無料でお使いいただけます。 38 | * ゲームやアプリなどへの組み込みやwebフォントとしての利用も可能です。 39 | * このフォントを使用し、派生フォントを作ることもできます。ただし、配布の際はSIL Open Font Licenseに基づいてリリースする必要があります。 40 | * SILライセンスについて詳しくは[SIL Open Font License 1.1 日本語訳](https://licenses.opensource.jp/OFL-1.1/OFL-1.1.html)または同梱の「OFL.txt」(英語)をご確認ください。 41 | 42 | 43 | ### 収録文字 44 | 45 | * [Adobe-Japan1-3](https://github.com/adobe-type-tools/Adobe-Japan1)の全グリフ 46 | * [GF Latin Core](https://github.com/googlefonts/gftools/tree/master/Lib/gftools/encodings/GF%20Glyph%20Sets#gf-latin-core) 47 | 48 | 49 | ### 禁止行為 50 | 51 | * 「SIL Open Font License Version 1.1」以外のライセンスで再配布すること。 52 | * フォントファイル自体を単体で販売すること。 53 | -------------------------------------------------------------------------------- /Visualizer/App/example/font/DotGothic16/README.md: -------------------------------------------------------------------------------- 1 | [English](https://github.com/fontworks-fonts/DotGothic16) /[日本語](README-JP.md) 2 | 3 | ![DotGothic16-Regular](./image_DotGothic16.png) 4 | 5 | ## DotGothic16-Regular 6 | 7 | Dotgothic 16 is based on the old 16x16 Gothic bitmap font that can best recreate the feel of pixel fonts from old video games, cell phones and computer screens on print. With its high readability, this font has become more popular in recent years due to the growing popularity of pixel art. 8 | [Learn more](https://fontworks.co.jp/fontsearch/dotgothic16std-m/). 9 | 10 | 11 | ### Download the font 12 | 13 | You can download pre-built the TrueType font from the following page. 14 | 15 | [Latest release](https://github.com/fontworks-fonts/DotGothic16/tree/master/fonts/ttf) 16 | 17 | 18 | ### Building the font from source 19 | 20 | #### Requirements 21 | 22 | * [python3](https://www.python.org/) 23 | * [fontmake](https://github.com/googlefonts/fontmake/) 24 | * [fonttools](https://github.com/fonttools/fonttools/) 25 | * [ttfautohint](https://www.freetype.org/ttfautohint/doc/ttfautohint.html) 26 | 27 | 28 | #### Build the font 29 | 30 | Change the current working directory to 'DotGothic16' folder and run **build.py** . 31 | 32 | $ python build.py 33 | 34 | 35 | ### Licence 36 | 37 | This font is licensed under the [SIL Open Font License](https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL). 38 | 39 | 40 | ### Characters 41 | 42 | * All glyphs in [Adobe-Japan1-3](https://github.com/adobe-type-tools/Adobe-Japan1) 43 | * [GF Latin Core](https://github.com/googlefonts/gftools/tree/master/Lib/gftools/encodings/GF%20Glyph%20Sets#gf-latin-core) 44 | 45 | 46 | ### Prohibited acts 47 | 48 | * Redistribute under license except 'SIL Open Font License Version 1.1'. 49 | * Selling ​​the font file itself. 50 | -------------------------------------------------------------------------------- /Visualizer/App/example/font/RocknRoll/README-JP.md: -------------------------------------------------------------------------------- 1 | [English](https://github.com/fontworks-fonts/RocknRoll) /[日本語](README-JP.md) 2 | 3 | ![RocknRollOne-Regular](./image_RocknRoll.png) 4 | 5 | ## ロックンロール One-Regular 6 | 7 | 線の強弱が勢いを感じさせてくれる、ポップスタイルに仕上げたユニークなオリジナル書体です。ところどころ点の部分を丸くしているデザインが特徴的で、生き生きと軽快で、躍動感を持った書体です。 8 | このフォントについての詳しい情報は[こちら](https://fontworks.co.jp/fontsearch/rocknrollstd-db/)をご覧ください。 9 | 10 | 11 | ### フォントのダウンロード 12 | 13 | 以下のページより、ビルド済みのTrueTypeフォントをダウンロードできます。 14 | 15 | [最終リリース](https://github.com/fontworks-fonts/RocknRoll/tree/master/fonts/ttf) 16 | 17 | 18 | ### ソースからのフォントのビルド手順 19 | 20 | #### 要件 21 | 22 | * [python3](https://www.python.org/) 23 | * [fontmake](https://github.com/googlefonts/fontmake/) 24 | * [fonttools](https://github.com/fonttools/fonttools/) 25 | * [ttfautohint](https://www.freetype.org/ttfautohint/doc/ttfautohint.html) 26 | 27 | 28 | #### フォントのビルド 29 | 30 | ワーキングディレクトリ(カレントディレクトリ)を「RocknRoll」フォルダへ変更し、**build.py**を実行します。 31 | 32 | $ python build.py 33 | 34 | 35 | ### ライセンス 36 | 37 | * 個人利用・商用利用にかかわらずどなたでも無料でお使いいただけます。 38 | * ゲームやアプリなどへの組み込みやwebフォントとしての利用も可能です。 39 | * このフォントを使用し、派生フォントを作ることもできます。ただし、配布の際はSIL Open Font Licenseに基づいてリリースする必要があります。 40 | * SILライセンスについて詳しくは[SIL Open Font License 1.1 日本語訳](https://licenses.opensource.jp/OFL-1.1/OFL-1.1.html)または同梱の「OFL.txt」(英語)をご確認ください。 41 | 42 | 43 | ### 収録文字 44 | 45 | * [Adobe-Japan1-3](https://github.com/adobe-type-tools/Adobe-Japan1)の全グリフ 46 | * [GF Latin Core](https://github.com/googlefonts/gftools/tree/master/Lib/gftools/encodings/GF%20Glyph%20Sets#gf-latin-core) 47 | 48 | 49 | ### 禁止行為 50 | 51 | * 「SIL Open Font License Version 1.1」以外のライセンスで再配布すること。 52 | * フォントファイル自体を単体で販売すること。 53 | -------------------------------------------------------------------------------- /Visualizer/App/example/font/RocknRoll/README.md: -------------------------------------------------------------------------------- 1 | [English](https://github.com/fontworks-fonts/RocknRoll) /[日本語](README-JP.md) 2 | 3 | ![RocknRollOne-Regular](./image_RocknRoll.png) 4 | 5 | ## RocknRoll One-Regular 6 | 7 | RocknRoll is an original pop-style font. The strokes of varying intensity add momentum and the rounded dots create a lively and dynamic feel. 8 | [Learn more](https://fontworks.co.jp/fontsearch/rocknrollstd-db/). 9 | 10 | 11 | ### Download the font 12 | 13 | You can download pre-built the TrueType font from the following page. 14 | 15 | [Latest release](https://github.com/fontworks-fonts/RocknRoll/tree/master/fonts/ttf) 16 | 17 | 18 | ### Building the font from source 19 | 20 | #### Requirements 21 | 22 | * [python3](https://www.python.org/) 23 | * [fontmake](https://github.com/googlefonts/fontmake/) 24 | * [fonttools](https://github.com/fonttools/fonttools/) 25 | * [ttfautohint](https://www.freetype.org/ttfautohint/doc/ttfautohint.html) 26 | 27 | 28 | #### Build the font 29 | 30 | Change the current working directory to 'RocknRoll' folder and run **build.py** . 31 | 32 | $ python build.py 33 | 34 | 35 | ### Licence 36 | 37 | This font is licensed under the [SIL Open Font License](https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL). 38 | 39 | 40 | ### Characters 41 | 42 | * All glyphs in [Adobe-Japan1-3](https://github.com/adobe-type-tools/Adobe-Japan1) 43 | * [GF Latin Core](https://github.com/googlefonts/gftools/tree/master/Lib/gftools/encodings/GF%20Glyph%20Sets#gf-latin-core) 44 | 45 | 46 | ### Prohibited acts 47 | 48 | * Redistribute under license except 'SIL Open Font License Version 1.1'. 49 | * Selling ​​the font file itself. 50 | -------------------------------------------------------------------------------- /Visualizer/App/example/font/RocknRoll/RocknRollOne-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/example/font/RocknRoll/RocknRollOne-Regular.ttf -------------------------------------------------------------------------------- /Visualizer/App/example/gif/test.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/example/gif/test.gif -------------------------------------------------------------------------------- /Visualizer/App/example/ini/config.ini: -------------------------------------------------------------------------------- 1 | [Window] 2 | title = My application 3 | width = 800 4 | height = 600 5 | sizable = false 6 | 7 | [Scene] 8 | background = (0.8, 0.9, 1.0) 9 | 10 | [Array] 11 | values = 11, 22, 33, 44, 55 12 | 13 | [Items] 14 | count = 3 15 | 16 | [Item0] 17 | label = Forest 18 | pos = (100, 100) 19 | 20 | [Item1] 21 | label = Ocean 22 | pos = (300, 200) 23 | 24 | [Item2] 25 | label = Mountain 26 | pos = (500, 100) 27 | -------------------------------------------------------------------------------- /Visualizer/App/example/json/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "Window": { 3 | "title": "My application", 4 | "width": 800, 5 | "height": 600, 6 | "sizable": false 7 | }, 8 | "Scene": { 9 | "background": "(0.8, 0.9, 1.0)" 10 | }, 11 | "Array": { 12 | "values": [ 13 | 11, 14 | 22, 15 | 33, 16 | 44, 17 | 55 18 | ] 19 | }, 20 | "Items": [ 21 | { 22 | "label": "Forest", 23 | "pos": { 24 | "x": 100, 25 | "y": 100 26 | } 27 | }, 28 | { 29 | "label": "Ocean", 30 | "pos": { 31 | "x": 300, 32 | "y": 200 33 | } 34 | }, 35 | { 36 | "label": "Mountain", 37 | "pos": { 38 | "x": 500, 39 | "y": 100 40 | } 41 | } 42 | ] 43 | } 44 | -------------------------------------------------------------------------------- /Visualizer/App/example/json/empty.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /Visualizer/App/example/json/invalid-blank.json: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Visualizer/App/example/json/invalid-syntax.json: -------------------------------------------------------------------------------- 1 | { 2 | -------------------------------------------------------------------------------- /Visualizer/App/example/json/test.json: -------------------------------------------------------------------------------- 1 | { 2 | "value.string": "true", 3 | "value.bool": true, 4 | "values": [ 5 | 100, 6 | 200, 7 | 300 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /Visualizer/App/example/midi/test.mid: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/example/midi/test.mid -------------------------------------------------------------------------------- /Visualizer/App/example/midi/test.txt: -------------------------------------------------------------------------------- 1 | http://www.ne.jp/asahi/music/myuu/midi/midi.htm 2 | 威風堂々 ifudoudou.mid 3 | Pomp and Circumstance, Op. 39: I. March in D Major (Allegro con molto fuoco - Trio. Largamente - Molto maestoso) -------------------------------------------------------------------------------- /Visualizer/App/example/obj/bark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/example/obj/bark.jpg -------------------------------------------------------------------------------- /Visualizer/App/example/obj/blacksmith.mtl: -------------------------------------------------------------------------------- 1 | # Blender MTL File: 'Blacksmith.blend' 2 | # Material Count: 8 3 | 4 | newmtl Plaster 5 | Ns 96.078431 6 | Ka 1.000000 1.000000 1.000000 7 | Kd 0.343378 0.323983 0.183595 8 | Ks 0.500000 0.500000 0.500000 9 | Ke 0.000000 0.000000 0.000000 10 | Ni 1.000000 11 | d 1.000000 12 | illum 2 13 | 14 | newmtl RoofTiles_Red 15 | Ns 96.078431 16 | Ka 1.000000 1.000000 1.000000 17 | Kd 0.117847 0.021406 0.012257 18 | Ks 0.500000 0.500000 0.500000 19 | Ke 0.000000 0.000000 0.000000 20 | Ni 1.000000 21 | d 1.000000 22 | illum 2 23 | 24 | newmtl Stone_Dark 25 | Ns 96.078431 26 | Ka 1.000000 1.000000 1.000000 27 | Kd 0.123762 0.146180 0.181264 28 | Ks 0.500000 0.500000 0.500000 29 | Ke 0.000000 0.000000 0.000000 30 | Ni 1.000000 31 | d 1.000000 32 | illum 2 33 | 34 | newmtl Stone_Light 35 | Ns 96.078431 36 | Ka 1.000000 1.000000 1.000000 37 | Kd 0.177224 0.211411 0.230634 38 | Ks 0.500000 0.500000 0.500000 39 | Ke 0.000000 0.000000 0.000000 40 | Ni 1.000000 41 | d 1.000000 42 | illum 2 43 | 44 | newmtl Windows 45 | Ns 96.078431 46 | Ka 1.000000 1.000000 1.000000 47 | Kd 0.028173 0.028173 0.028173 48 | Ks 0.500000 0.500000 0.500000 49 | Ke 0.000000 0.000000 0.000000 50 | Ni 1.000000 51 | d 1.000000 52 | illum 2 53 | 54 | newmtl Wood 55 | Ns 96.078431 56 | Ka 1.000000 1.000000 1.000000 57 | Kd 0.122341 0.054783 0.019326 58 | Ks 0.500000 0.500000 0.500000 59 | Ke 0.000000 0.000000 0.000000 60 | Ni 1.000000 61 | d 1.000000 62 | illum 2 63 | 64 | newmtl Wood_Light 65 | Ns 96.078431 66 | Ka 1.000000 1.000000 1.000000 67 | Kd 0.213407 0.092240 0.031750 68 | Ks 0.500000 0.500000 0.500000 69 | Ke 0.000000 0.000000 0.000000 70 | Ni 1.000000 71 | d 1.000000 72 | illum 2 73 | 74 | newmtl Wood_Side 75 | Ns 96.078431 76 | Ka 1.000000 1.000000 1.000000 77 | Kd 0.307496 0.227094 0.099591 78 | Ks 0.500000 0.500000 0.500000 79 | Ke 0.000000 0.000000 0.000000 80 | Ni 1.000000 81 | d 1.000000 82 | illum 2 83 | -------------------------------------------------------------------------------- /Visualizer/App/example/obj/credit.txt: -------------------------------------------------------------------------------- 1 | [blacksmith] 2 | [crystal1] 3 | [crystal2] 4 | [crystal3] 5 | [mill] 6 | [pine] 7 | [tree] 8 | https://quaternius.com/ 9 | [siv3d-kun.obj] 10 | https://github.com/itakawa/siv3dkun 11 | -------------------------------------------------------------------------------- /Visualizer/App/example/obj/crystal1.mtl: -------------------------------------------------------------------------------- 1 | # Blender MTL File: 'Crystal1.blend' 2 | # Material Count: 1 3 | 4 | newmtl Purple 5 | Ns 96.078431 6 | Ka 1.000000 1.000000 1.000000 7 | Kd 0.108579 0.053576 0.389513 8 | Ks 0.500000 0.500000 0.500000 9 | Ke 0.000000 0.000000 0.000000 10 | Ni 1.000000 11 | d 1.000000 12 | illum 2 13 | -------------------------------------------------------------------------------- /Visualizer/App/example/obj/crystal1.obj: -------------------------------------------------------------------------------- 1 | # Blender v2.79 (sub 0) OBJ File: 'Crystal1.blend' 2 | # www.blender.org 3 | mtllib crystal1.mtl 4 | o Crystal1_Cube.001 5 | v -0.109012 -0.378179 0.065416 6 | v -0.116071 -0.206853 0.127685 7 | v -0.229016 -0.255743 0.065708 8 | v -0.116071 0.206853 0.127685 9 | v -0.109012 0.378179 0.065416 10 | v -0.229016 0.255743 0.065708 11 | v -0.109012 -0.378179 -0.065416 12 | v -0.229016 -0.255743 -0.065708 13 | v -0.116071 -0.206853 -0.127685 14 | v -0.109012 0.378179 -0.065416 15 | v -0.116071 0.206853 -0.127685 16 | v -0.229016 0.255743 -0.065708 17 | v 0.109012 -0.378179 0.065416 18 | v 0.229016 -0.255743 0.065708 19 | v 0.116071 -0.206853 0.127685 20 | v 0.109012 0.378179 0.065416 21 | v 0.116071 0.206853 0.127685 22 | v 0.229016 0.255743 0.065708 23 | v 0.109012 -0.378179 -0.065416 24 | v 0.116071 -0.206853 -0.127685 25 | v 0.229016 -0.255743 -0.065708 26 | v 0.109012 0.378179 -0.065416 27 | v 0.229016 0.255743 -0.065708 28 | v 0.116071 0.206853 -0.127685 29 | vt 0.803235 0.990756 30 | vt 0.176051 0.012366 31 | vt 0.823949 0.012366 32 | vt 0.196765 0.990756 33 | vt 0.802455 0.198677 34 | vt 0.197545 0.198677 35 | vt 0.196765 0.009244 36 | vt 0.803235 0.009244 37 | vt 0.018714 0.197790 38 | vt 0.802455 0.801323 39 | vt 0.981286 0.802210 40 | vt 0.197545 0.801323 41 | vt 0.802455 0.801323 42 | vt 0.803235 0.990756 43 | vt 0.802455 0.198677 44 | vt 0.197545 0.198677 45 | vt 0.196765 0.009244 46 | vt 0.803235 0.009244 47 | vt 0.018714 0.197790 48 | vt 0.834085 0.981286 49 | vt 0.176051 0.802606 50 | vt 0.176051 0.197394 51 | vt 0.823949 0.197394 52 | vt 0.823949 0.802606 53 | vt 0.176051 0.802606 54 | vt 0.176051 0.197394 55 | vt 0.823949 0.197394 56 | vt 0.823949 0.802606 57 | vt 0.981286 0.197790 58 | vt 0.018714 0.802210 59 | vt 0.981286 0.197790 60 | vt 0.176051 0.012366 61 | vt 0.823949 0.012366 62 | vt 0.197545 0.801323 63 | vt 0.196765 0.990756 64 | vt 0.018714 0.802210 65 | vt 0.014611 0.207921 66 | vt 0.014611 0.792079 67 | vt 0.823949 0.987634 68 | vt 0.985389 0.207921 69 | vt 0.985389 0.792079 70 | vt 0.176051 0.193316 71 | vt 0.823949 0.193316 72 | vt 0.985389 0.792079 73 | vt 0.985389 0.207921 74 | vt 0.014611 0.207921 75 | vt 0.014611 0.792079 76 | vt 0.176051 0.987634 77 | vt 0.823949 0.823949 78 | vn 0.4811 0.0000 0.8767 79 | vn 0.0000 -0.3416 -0.9398 80 | vn -0.3383 -0.3337 -0.8799 81 | vn 0.3383 -0.3337 0.8799 82 | vn 0.0000 0.3416 0.9398 83 | vn 0.0000 0.3416 -0.9398 84 | vn 0.3383 0.3337 -0.8799 85 | vn -0.3383 0.3337 0.8799 86 | vn 0.0000 0.0000 1.0000 87 | vn 0.0000 0.0000 -1.0000 88 | vn -0.3383 0.3337 -0.8799 89 | vn 0.3383 0.3337 0.8799 90 | vn 0.3383 -0.3337 -0.8799 91 | vn -0.4811 0.0000 -0.8767 92 | vn 0.0000 -0.3416 0.9398 93 | vn -0.7142 -0.7000 -0.0000 94 | vn -1.0000 0.0000 0.0000 95 | vn -0.7142 0.7000 0.0000 96 | vn 0.4811 0.0000 -0.8767 97 | vn 0.7142 -0.7000 0.0000 98 | vn 0.7142 0.7000 -0.0000 99 | vn 0.0000 -1.0000 0.0000 100 | vn 1.0000 0.0000 0.0000 101 | vn -0.3383 -0.3337 0.8799 102 | vn -0.4811 0.0000 0.8767 103 | vn 0.0000 1.0000 0.0000 104 | usemtl Purple 105 | s off 106 | f 15/1/1 14/2/1 18/3/1 17/4/1 107 | f 19/5/2 7/6/2 9/7/2 20/8/2 108 | f 9/7/3 7/6/3 8/9/3 109 | f 15/1/4 13/10/4 14/11/4 110 | f 16/12/5 5/13/5 4/14/5 17/4/5 111 | f 10/15/6 22/16/6 24/17/6 11/18/6 112 | f 24/17/7 22/16/7 23/19/7 113 | f 4/14/8 5/13/8 6/20/8 114 | f 2/21/9 15/22/9 17/23/9 4/24/9 115 | f 20/25/10 9/26/10 11/27/10 24/28/10 116 | f 10/15/11 11/18/11 12/29/11 117 | f 16/12/12 17/4/12 18/30/12 118 | f 19/5/13 20/8/13 21/31/13 119 | f 9/7/14 8/32/14 12/33/14 11/18/14 120 | f 1/34/15 13/10/15 15/1/15 2/35/15 121 | f 3/36/16 8/9/16 7/6/16 1/34/16 122 | f 8/37/17 3/38/17 6/39/17 12/40/17 123 | f 5/13/18 10/15/18 12/29/18 6/41/18 124 | f 21/42/19 20/8/19 24/17/19 23/43/19 125 | f 13/10/20 19/5/20 21/31/20 14/11/20 126 | f 22/16/21 16/12/21 18/30/21 23/19/21 127 | f 7/6/22 19/5/22 13/10/22 1/34/22 128 | f 14/44/23 21/45/23 23/46/23 18/47/23 129 | f 1/34/24 2/35/24 3/36/24 130 | f 3/48/25 2/35/25 4/49/25 6/20/25 131 | f 22/16/26 10/15/26 5/13/26 16/12/26 132 | -------------------------------------------------------------------------------- /Visualizer/App/example/obj/crystal2.mtl: -------------------------------------------------------------------------------- 1 | # Blender MTL File: 'Crystal2.blend' 2 | # Material Count: 1 3 | 4 | newmtl Pink 5 | Ns 96.078431 6 | Ka 1.000000 1.000000 1.000000 7 | Kd 0.640000 0.055034 0.441812 8 | Ks 0.500000 0.500000 0.500000 9 | Ke 0.000000 0.000000 0.000000 10 | Ni 1.000000 11 | d 1.000000 12 | illum 2 13 | -------------------------------------------------------------------------------- /Visualizer/App/example/obj/crystal3.mtl: -------------------------------------------------------------------------------- 1 | # Blender MTL File: 'Crystal3.blend' 2 | # Material Count: 1 3 | 4 | newmtl Green 5 | Ns 96.078431 6 | Ka 1.000000 1.000000 1.000000 7 | Kd 0.130034 0.640000 0.164621 8 | Ks 0.500000 0.500000 0.500000 9 | Ke 0.000000 0.000000 0.000000 10 | Ni 1.000000 11 | d 1.000000 12 | illum 2 13 | -------------------------------------------------------------------------------- /Visualizer/App/example/obj/crystal3.obj: -------------------------------------------------------------------------------- 1 | # Blender v2.79 (sub 0) OBJ File: 'Crystal3.blend' 2 | # www.blender.org 3 | mtllib crystal3.mtl 4 | o Crystal3_Cylinder.002 5 | v -0.005935 0.382821 -0.003426 6 | v -0.075832 -0.002159 -0.141623 7 | v 0.075832 -0.002159 -0.141623 8 | v 0.160565 -0.002159 -0.005139 9 | v 0.075832 -0.002159 0.141623 10 | v -0.084734 -0.002159 0.136484 11 | v -0.160565 -0.002159 -0.005139 12 | v -0.005935 -0.382821 -0.003426 13 | vt 0.615490 0.243047 14 | vt 0.721701 0.047003 15 | vt 0.840381 0.243047 16 | vt 0.506701 0.241590 17 | vt 0.159619 0.243047 18 | vt 0.265830 0.047003 19 | vt 0.372042 0.243047 20 | vt 0.278299 0.047003 21 | vt 0.490722 0.243047 22 | vt 0.265830 0.952997 23 | vt 0.040939 0.243047 24 | vt 0.721702 0.952997 25 | vt 0.278299 0.952997 26 | vt 0.500000 0.247774 27 | vt 0.270986 0.958823 28 | vt 0.037098 0.247774 29 | vn -0.0300 -0.3503 0.9362 30 | vn -0.8305 -0.3354 0.4447 31 | vn 0.0000 -0.3413 -0.9400 32 | vn -0.8025 -0.3282 -0.4982 33 | vn 0.0000 0.3379 -0.9412 34 | vn 0.8105 -0.3524 0.4679 35 | vn -0.0300 0.3468 0.9374 36 | vn 0.7958 -0.3503 -0.4940 37 | vn -0.8316 0.3320 0.4453 38 | vn -0.8035 0.3249 -0.4988 39 | vn 0.8116 0.3489 0.4686 40 | vn 0.7968 0.3468 -0.4947 41 | usemtl Green 42 | s off 43 | f 6/1/1 8/2/1 5/3/1 44 | f 7/4/2 8/2/2 6/1/2 45 | f 3/5/3 8/6/3 2/7/3 46 | f 2/7/4 8/8/4 7/9/4 47 | f 1/10/5 3/5/5 2/7/5 48 | f 8/6/6 4/11/6 5/3/6 49 | f 1/12/7 6/1/7 5/3/7 50 | f 8/6/8 3/5/8 4/11/8 51 | f 1/13/9 7/14/9 6/1/9 52 | f 1/10/10 2/7/10 7/9/10 53 | f 1/15/11 5/3/11 4/16/11 54 | f 3/5/12 1/10/12 4/11/12 55 | -------------------------------------------------------------------------------- /Visualizer/App/example/obj/leaves.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/example/obj/leaves.png -------------------------------------------------------------------------------- /Visualizer/App/example/obj/mill.mtl: -------------------------------------------------------------------------------- 1 | # Blender MTL File: 'Mill.blend' 2 | # Material Count: 10 3 | 4 | newmtl Green 5 | Ns 96.078431 6 | Ka 1.000000 1.000000 1.000000 7 | Kd 0.066358 0.117846 0.028293 8 | Ks 0.500000 0.500000 0.500000 9 | Ke 0.000000 0.000000 0.000000 10 | Ni 1.000000 11 | d 1.000000 12 | illum 2 13 | 14 | newmtl Plaster 15 | Ns 96.078431 16 | Ka 1.000000 1.000000 1.000000 17 | Kd 0.343378 0.323983 0.183595 18 | Ks 0.500000 0.500000 0.500000 19 | Ke 0.000000 0.000000 0.000000 20 | Ni 1.000000 21 | d 1.000000 22 | illum 2 23 | 24 | newmtl RoofTiles 25 | Ns 96.078431 26 | Ka 1.000000 1.000000 1.000000 27 | Kd 0.015384 0.096705 0.117848 28 | Ks 0.500000 0.500000 0.500000 29 | Ke 0.000000 0.000000 0.000000 30 | Ni 1.000000 31 | d 1.000000 32 | illum 2 33 | 34 | newmtl Stone 35 | Ns 96.078431 36 | Ka 1.000000 1.000000 1.000000 37 | Kd 0.077633 0.081879 0.095419 38 | Ks 0.500000 0.500000 0.500000 39 | Ke 0.000000 0.000000 0.000000 40 | Ni 1.000000 41 | d 1.000000 42 | illum 2 43 | 44 | newmtl Stone_Dark 45 | Ns 96.078431 46 | Ka 1.000000 1.000000 1.000000 47 | Kd 0.123762 0.146180 0.181264 48 | Ks 0.500000 0.500000 0.500000 49 | Ke 0.000000 0.000000 0.000000 50 | Ni 1.000000 51 | d 1.000000 52 | illum 2 53 | 54 | newmtl Stone_Light 55 | Ns 96.078431 56 | Ka 1.000000 1.000000 1.000000 57 | Kd 0.177224 0.211411 0.230634 58 | Ks 0.500000 0.500000 0.500000 59 | Ke 0.000000 0.000000 0.000000 60 | Ni 1.000000 61 | d 1.000000 62 | illum 2 63 | 64 | newmtl Windows 65 | Ns 96.078431 66 | Ka 1.000000 1.000000 1.000000 67 | Kd 0.028173 0.028173 0.028173 68 | Ks 0.500000 0.500000 0.500000 69 | Ke 0.000000 0.000000 0.000000 70 | Ni 1.000000 71 | d 1.000000 72 | illum 2 73 | 74 | newmtl Wood 75 | Ns 96.078431 76 | Ka 1.000000 1.000000 1.000000 77 | Kd 0.122341 0.054783 0.019326 78 | Ks 0.500000 0.500000 0.500000 79 | Ke 0.000000 0.000000 0.000000 80 | Ni 1.000000 81 | d 1.000000 82 | illum 2 83 | 84 | newmtl Wood_Light 85 | Ns 96.078431 86 | Ka 1.000000 1.000000 1.000000 87 | Kd 0.213407 0.092240 0.031750 88 | Ks 0.500000 0.500000 0.500000 89 | Ke 0.000000 0.000000 0.000000 90 | Ni 1.000000 91 | d 1.000000 92 | illum 2 93 | 94 | newmtl Wood_Side 95 | Ns 96.078431 96 | Ka 1.000000 1.000000 1.000000 97 | Kd 0.307496 0.227094 0.099591 98 | Ks 0.500000 0.500000 0.500000 99 | Ke 0.000000 0.000000 0.000000 100 | Ni 1.000000 101 | d 1.000000 102 | illum 2 103 | -------------------------------------------------------------------------------- /Visualizer/App/example/obj/pine.mtl: -------------------------------------------------------------------------------- 1 | # Blender MTL File: 'Pine_4.blend' 2 | # Material Count: 2 3 | 4 | newmtl Bark 5 | Ns 96.078431 6 | Ka 1.000000 1.000000 1.000000 7 | Kd 0.640000 0.640000 0.640000 8 | Ks 0.500000 0.500000 0.500000 9 | Ke 0.000000 0.000000 0.000000 10 | Ni 1.000000 11 | d 1.000000 12 | illum 2 13 | map_Kd bark.jpg 14 | 15 | newmtl Pine_Leaves 16 | Ns 96.078431 17 | Ka 1.000000 1.000000 1.000000 18 | Kd 0.640000 0.640000 0.640000 19 | Ks 0.500000 0.500000 0.500000 20 | Ke 0.000000 0.000000 0.000000 21 | Ni 1.000000 22 | d 1.000000 23 | illum 2 24 | map_Kd pine_leaves_red.png 25 | -------------------------------------------------------------------------------- /Visualizer/App/example/obj/pine_leaves_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/example/obj/pine_leaves_red.png -------------------------------------------------------------------------------- /Visualizer/App/example/obj/siv3d-kun-eye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/example/obj/siv3d-kun-eye.png -------------------------------------------------------------------------------- /Visualizer/App/example/obj/siv3d-kun.mtl: -------------------------------------------------------------------------------- 1 | # Blender MTL File: 'Siv3DKun2.obj.blend' 2 | # Material Count: 9 3 | 4 | newmtl ClawWhite 5 | Ns 900.000000 6 | Ka 0.442509 0.442509 0.442509 7 | Kd 1.000000 1.000000 1.000000 8 | Ks 0.464922 0.464922 0.464922 9 | Ke 0.000000 0.000000 0.000000 10 | Ni 1.450000 11 | d 1.000000 12 | illum 3 13 | map_Kd siv3d-kun.png 14 | 15 | newmtl Eyes 16 | Ns 231.666285 17 | Ka 1.000000 1.000000 1.000000 18 | Kd 0.800000 0.800000 0.800000 19 | Ks 0.000000 0.000000 0.000000 20 | Ke 0.000000 0.000000 0.000000 21 | Ni 1.450000 22 | d 1.000000 23 | illum 1 24 | map_Kd siv3d-kun-eye.png 25 | 26 | newmtl HairGray 27 | Ns 205.078356 28 | Ka 1.000000 1.000000 1.000000 29 | Kd 0.266356 0.250158 0.226966 30 | Ks 0.000000 0.000000 0.000000 31 | Ke 0.000000 0.000000 0.000000 32 | Ni 0.000000 33 | d 1.000000 34 | illum 1 35 | map_Kd siv3d-kun.png 36 | 37 | newmtl HoodUrajiGray 38 | Ns 225.000000 39 | Ka 1.000000 1.000000 1.000000 40 | Kd 0.060177 0.098498 0.094167 41 | Ks 0.000000 0.000000 0.000000 42 | Ke 0.000000 0.000000 0.000000 43 | Ni 1.450000 44 | d 1.000000 45 | illum 1 46 | map_Kd siv3d-kun.png 47 | 48 | newmtl HornGray 49 | Ns 190.382293 50 | Ka 1.000000 1.000000 1.000000 51 | Kd 0.800000 0.800000 0.800000 52 | Ks 0.000000 0.000000 0.000000 53 | Ke 0.000000 0.000000 0.000000 54 | Ni 1.450000 55 | d 1.000000 56 | illum 1 57 | map_Kd siv3d-kun.png 58 | 59 | newmtl Skin 60 | Ns 157.340755 61 | Ka 1.000000 1.000000 1.000000 62 | Kd 0.800000 0.800000 0.800000 63 | Ks 0.000000 0.000000 0.000000 64 | Ke 0.000000 0.000000 0.000000 65 | Ni 0.000000 66 | d 1.000000 67 | illum 1 68 | map_Kd siv3d-kun.png 69 | 70 | newmtl SocksWhite 71 | Ns 225.000000 72 | Ka 1.000000 1.000000 1.000000 73 | Kd 0.800000 0.800000 0.800000 74 | Ks 0.000000 0.000000 0.000000 75 | Ke 0.000000 0.000000 0.000000 76 | Ni 1.450000 77 | d 1.000000 78 | illum 1 79 | map_Kd siv3d-kun.png 80 | 81 | newmtl TShirtsWhite 82 | Ns 900.000000 83 | Ka 1.000000 1.000000 1.000000 84 | Kd 0.800000 0.800000 0.800000 85 | Ks 0.000000 0.000000 0.000000 86 | Ke 0.000000 0.000000 0.000000 87 | Ni 0.000000 88 | d 1.000000 89 | illum 1 90 | map_Kd siv3d-kun.png 91 | 92 | newmtl Ware 93 | Ns 208.083117 94 | Ka 1.000000 1.000000 1.000000 95 | Kd 0.800000 0.800000 0.800000 96 | Ks 0.000000 0.000000 0.000000 97 | Ke 0.000000 0.000000 0.000000 98 | Ni 0.000000 99 | d 1.000000 100 | illum 1 101 | map_Kd siv3d-kun.png 102 | -------------------------------------------------------------------------------- /Visualizer/App/example/obj/siv3d-kun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/example/obj/siv3d-kun.png -------------------------------------------------------------------------------- /Visualizer/App/example/obj/tree.mtl: -------------------------------------------------------------------------------- 1 | # Blender MTL File: 'Tree_1.blend' 2 | # Material Count: 2 3 | 4 | newmtl Bark 5 | Ns 96.078431 6 | Ka 1.000000 1.000000 1.000000 7 | Kd 0.640000 0.640000 0.640000 8 | Ks 0.500000 0.500000 0.500000 9 | Ke 0.000000 0.000000 0.000000 10 | Ni 1.000000 11 | d 1.000000 12 | illum 2 13 | map_Kd bark.jpg 14 | 15 | newmtl Tree_Leaves 16 | Ns 96.078431 17 | Ka 1.000000 1.000000 1.000000 18 | Kd 0.640000 0.640000 0.640000 19 | Ks 0.500000 0.500000 0.500000 20 | Ke 0.000000 0.000000 0.000000 21 | Ni 1.000000 22 | d 1.000000 23 | illum 2 24 | map_Kd leaves.png 25 | -------------------------------------------------------------------------------- /Visualizer/App/example/particle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CaseyNelson314/Visualizer/376912777f988bd4bdb40756c04e889c599f03f3/Visualizer/App/example/particle.png -------------------------------------------------------------------------------- /Visualizer/App/example/script/breakout.as: -------------------------------------------------------------------------------- 1 |  2 | void Main() 3 | { 4 | const Point brickSize(40, 20); 5 | 6 | const double speed = 480.0; 7 | 8 | Vec2 ballVelocity(0, -speed); 9 | 10 | Circle ball(400, 400, 8); 11 | 12 | Array bricks; 13 | for (int32 y = 0; y < 5; ++y) 14 | { 15 | for (int32 x = 0; x < (Scene::Width() / brickSize.x); ++x) 16 | { 17 | bricks << Rect((x * brickSize.x), (60 + y * brickSize.y), brickSize); 18 | } 19 | } 20 | 21 | while (System::Update()) 22 | { 23 | const Rect paddle(Arg::center(Cursor::Pos().x, 500), 60, 10); 24 | 25 | ball.moveBy(ballVelocity * Scene::DeltaTime()); 26 | 27 | for (size_t i = 0; i < bricks.size(); ++i) 28 | { 29 | const Rect brick = bricks[i]; 30 | 31 | if (brick.intersects(ball)) 32 | { 33 | (brick.bottom().intersects(ball) || brick.top().intersects(ball) 34 | ? ballVelocity.y : ballVelocity.x) *= -1; 35 | 36 | bricks.removeAt(i); 37 | break; 38 | } 39 | } 40 | 41 | if (ball.y < 0 && ballVelocity.y < 0) 42 | { 43 | ballVelocity.y *= -1; 44 | } 45 | 46 | if ((ball.x < 0 && ballVelocity.x < 0) 47 | || (Scene::Width() < ball.x && 0 < ballVelocity.x)) 48 | { 49 | ballVelocity.x *= -1; 50 | } 51 | 52 | if (0 < ballVelocity.y && paddle.intersects(ball)) 53 | { 54 | ballVelocity = Vec2((ball.x - paddle.center().x) * 10, -ballVelocity.y).setLength(speed); 55 | } 56 | 57 | for (size_t i = 0; i < bricks.size(); ++i) 58 | { 59 | const Rect brick = bricks[i]; 60 | brick.stretched(-1).draw(HSV(brick.y - 40)); 61 | } 62 | 63 | ball.draw(); 64 | paddle.draw(); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /Visualizer/App/example/script/hello.as: -------------------------------------------------------------------------------- 1 |  2 | void Main() 3 | { 4 | // Set background color to sky blue 5 | Scene::SetBackground(ColorF(0.8, 0.9, 1.0)); 6 | 7 | // Create a new font 8 | const Font font(60); 9 | 10 | // Create a new emoji font 11 | const Font emojiFont(60, Typeface::ColorEmoji); 12 | 13 | // Set emojiFont as a fallback 14 | font.addFallback(emojiFont); 15 | 16 | // Create a texture from an image file 17 | Texture texture("example/windmill.png"); 18 | 19 | // Create a texture from an emoji 20 | Texture emoji(_emoji("🐈")); 21 | 22 | // Coordinates of the emoji 23 | Vec2 emojiPos(300, 150); 24 | 25 | // Print a text 26 | Print << "Push [A] key"; 27 | 28 | while (System::Update()) 29 | { 30 | // Draw a texture 31 | texture.draw(200, 200); 32 | 33 | // Put a text in the middle of the screen 34 | font("Hello, Siv3D!🚀").drawAt(Scene::Center(), Palette::Black); 35 | 36 | // Draw a texture with animated size 37 | emoji.resized(100 + Periodic::Sine0_1(_s(1)) * 20).drawAt(emojiPos); 38 | 39 | // Draw a red transparent circle that follows the mouse cursor 40 | Circle(Cursor::Pos(), 40).draw(ColorF(1, 0, 0, 0.5)); 41 | 42 | // When [A] key is down 43 | if (KeyA.down()) 44 | { 45 | // Print a text message 46 | Print << "Hello!"; 47 | } 48 | 49 | // When [Button] is pushed 50 | if (SimpleGUI::Button("Button", Vec2(640, 40))) 51 | { 52 | // Move the coordinates to a random position in the screen 53 | emojiPos = RandomVec2(Scene::Rect()); 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /Visualizer/App/example/script/paint.as: -------------------------------------------------------------------------------- 1 |  2 | void Main() 3 | { 4 | // キャンバスのサイズ 5 | const Point canvasSize(600, 600); 6 | 7 | // ペンの太さ 8 | const int32 thickness = 8; 9 | 10 | // ペンの色 11 | const Color penColor = Palette::Orange; 12 | 13 | // 書き込み用の画像データを用意 14 | Image image(canvasSize, Palette::White); 15 | 16 | // 表示用のテクスチャ(内容を更新するので DynamicTexture) 17 | DynamicTexture texture(image); 18 | 19 | while (System::Update()) 20 | { 21 | if (MouseL.pressed()) 22 | { 23 | // 書き込む線の始点は直前のフレームのマウスカーソル座標 24 | // (初回はタッチ操作時の座標のジャンプを防ぐため、現在のマウスカーソル座標にする) 25 | const Point from = MouseL.down() ? Cursor::Pos() : Cursor::PreviousPos(); 26 | 27 | // 書き込む線の終点は現在のマウスカーソル座標 28 | const Point to = Cursor::Pos(); 29 | 30 | // image に線を書き込む 31 | Line(from, to).overwrite(image, thickness, penColor); 32 | 33 | // 書き込み終わった image でテクスチャを更新 34 | texture.fill(image); 35 | } 36 | 37 | // 描いたものを消去するボタンが押されたら 38 | if (SimpleGUI::Button("Clear", Vec2(640, 40), 120)) 39 | { 40 | // 画像を白で塗りつぶす 41 | image.fill(Palette::White); 42 | 43 | // 塗りつぶし終わった image でテクスチャを更新 44 | texture.fill(image); 45 | } 46 | 47 | // テクスチャを表示 48 | texture.draw(); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /Visualizer/App/example/script/piano.as: -------------------------------------------------------------------------------- 1 |  2 | void Main() 3 | { 4 | // 白鍵の大きさ 5 | const Point keySize(55, 400); 6 | 7 | // 楽器の種類 8 | const GMInstrument instrument = GMInstrument::Piano1; 9 | 10 | // ウインドウをリサイズ 11 | Window::Resize(12 * keySize.x, keySize.y); 12 | 13 | // 鍵盤の数 14 | const int32 NumKeys = 20; 15 | 16 | // 音を作成 17 | Array