Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Scala 3 で GLSL のための c-like-for を実装してみた
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
TATSUNO Yasuhiro
March 14, 2025
Programming
1
930
Scala 3 で GLSL のための c-like-for を実装してみた
【オフライン】Scalaわいわい勉強会 #5【東京】
https://scala-tokyo.connpass.com/event/344598/
TATSUNO Yasuhiro
March 14, 2025
Tweet
Share
More Decks by TATSUNO Yasuhiro
See All by TATSUNO Yasuhiro
ゆくKotlin くるRust
exoego
1
220
Bun に LCOV 出力を実装した
exoego
2
320
terraform-provider-aws にプルリクして マージされるまで
exoego
2
480
ライブラリをパブリッシュせずにすばやく試す
exoego
2
330
esbuild 最適化芸人
exoego
3
2.6k
いい感じに AWS を組み合わせたビルディングブロックでアプリ開発を支援する / TdTechTalk 2022 11
exoego
0
870
Empowering App Dev by Nicely-Crafted High-Level AWS Components
exoego
0
99
月間数十億リクエストのマイクロサービスを支える JVM+AWS フルサーバーレス開発事例 / Now and Future of Fully Serverless development at Chatwork
exoego
1
810
Scala と AWS でフルサーバーレス開発事例 / How Chatworks uses Scala and Serverless
exoego
3
1.6k
Other Decks in Programming
See All in Programming
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
390
2026年 エンジニアリング自己学習法
yumechi
0
140
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
120
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
orgachem
PRO
1
250
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
300
CSC307 Lecture 05
javiergs
PRO
0
500
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
1
1k
CSC307 Lecture 01
javiergs
PRO
0
690
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
230
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
140
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
620
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1.1k
Featured
See All Featured
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
320
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
220
New Earth Scene 8
popppiees
1
1.5k
Agile that works and the tools we love
rasmusluckow
331
21k
Designing Experiences People Love
moore
144
24k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.6k
What's in a price? How to price your products and services
michaelherold
247
13k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
400
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
260
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
60
42k
Transcript
TATSUNO Yasuhiro 2025/03/14 #scala_waiwai TATSUNO Yasuhiro Implementing C-like-for for GLSL
in Scala 3
自己紹介 - TATSUNO Yasuhiro @exoego on GitHub & Twitter(𝕏) -
データ分析系 SaaS の Stuff Software Engineer - 趣味で Scala Steward のメンテナンスなどをしています - 東京のおいしいカレー屋を食べて帰りたいので教えてく ださい
わたしと Scala 3年間 Isomorphic Scala.jsで 開発してました 最近は主に TypeScript と Kotlin
でメシを食べてます
【悲報】 会社で新規に Scala 利用禁止令
仕事で書けないなら 趣味で書けばいい 大井昌和『パンがなければ焼けばいい』竹書房, 2022
個人開発で作りたいものが 特にないのだった… 個人開発してる人マジすごい https://nota.connpass.com/event/346659/
あっ… ゲーム作りたかったな… 小学生のころから… 30年何もできてないが… アスキー『RPGツクール2』1996
Scala 製ゲームエンジン Indigo Scala.js で JS に変換し、ブラウザなどで実行 開発されたゲームがスマホに数個リリースされてる グラフィックスは WebGL
で描画 Scala で Shader を書ける
ゲームにおける Shader とはなんぞや 2D や 3D のグラフィックスを計算で加工する仕組み 光と影、質感、画面効果などを与えられる、らしい https://www.reddit.com/r/admincraft/comments/k4pibq/made_a_comparison_of_the_3_most_popular_shaders/ Minecraft
における光源や水表現の強化 https://www.reddit.com/r/RetroGamePorn/comments/10k40am/jet_set_radio_wi thout_celshaded_graphics_is_cursed/#lightbox Jet Set Radio におけるトゥーンレンダリング
Shader ってどう書くの GLSL(OpenGL Shading Language)という C 風言語が主。 グラフィックス処理に必須のベクトルや行列を扱えて、色ん なハードウェアで動かせる、らしい 他にも固有言語あり
• High-Level Shading Language。Microsoft DirectX 用 • Metal Shading Language。Apple の Metal 用
Shader でこんなことも 素材なし、計算だけで イケてるグラフィックスを生成 センスがあれば…… https://x.com/XorDev/status/1605413317165490176
Scala ゲームエンジン Indigo で Shader はどう使う? ultraviolet という Scala 3
to GLSL トランスパイラーが Scala コードを GLSL に変換してくれる !!!!
ultraviolet で生成する GLSL Shader 型は単純な関数 c-like な for cfor(初期状態, 継続条件,
次の状態) 中身こんな感じ。えっ普通…? これが GLSL WebGL で実行できる ここで魔法が起きます
魔法の中身 = Scala 3マクロ ≒ コンパイル時の AST 変 換 fragment.toGLSL[T]
は cfor コードから GLSL 文字列を コンパイル時に生成 入力:Shader インスタンスの AST 出力:別の AST 今回は GLSL インスタンス
AST 変換:欲しいツリーをマッチで こんな cfor を こんなツリーのパターンマッチで解析して あとは新しいツリーを生成するだけ マッチ作るまでがダルかった
https://x.com/McDonaldsJapan/status/1892439036947485111 kwsk はこちらを見るお https://github.com/PurpleKingdomGames/ultraviolet/pull/142
ところで ゲーム開発どうなった? アッ ハイ…… 終