Graphtoy v0.4 by Inigo Quilez (feedback from Rafæl Couto, Florian Mosleh, Nicholas Ralabate, Rich Eakin and Jason Tully). If you find Graphtoy useful, please consider supporting it through Patreon or PayPal.
![Graphtoy](https://cdn-ak-scissors.b.st-hatena.com/image/square/561e98b0026a48cfac654b989e44a14446c2b567/height=288;version=1;width=512/https%3A%2F%2Fgraphtoy.com%2Fgraphtoy.png)
次世代仕様のWebGPUとは? 次期macOSでのOpenGL非推奨化は WebGLに影響をもたらすのか ウェブの3Dグラフィックスを扱う新しい仕様として、WebGPUが提案されています。広く普及したWebGLがある中で、WebGPUとはどういった目的で生まれようとしているのでしょうか? 本記事ではWebGLとWebGPUの違いと、近況を紹介します。 業界を震撼させたAppleのOpenGL非推奨化 今月6月上旬に開催されたWWDC 18で発表されたmacOS 10.14 MojaveとiOS 12のウェブページでは、OpenGL/OpenCLおよびOpenGL ESを非推奨化する旨が記載されています。macOS 10.14とiOS 12でOpenGL等は引き続き動作するものの、Metalへの置き換えを呼びかけています。 ▲What’s New in macOSにはOpenGLとOpenC
この記事は,WebGL Advent Calendar 2016 16日目の記事です。 今年も何もしてないなぁと思いながら生きていたのですが、WebGLで色々成果を挙げている友人に感化されて飛び入り参加しました。よろしくお願いします。 今回は環境マップでよく利用されているキューブマップを使って、WebGL上で擬似的なIBLを、拡張機能を利用する方法としない方法の2つ実装しました。 この記事では実装の中で得た知見を共有できればと思います。 今回作ったもの https://github.com/kaneta1992/cubemapIBL IBL(Image Based Lighting)とは IBLと略すこともある。実在する風景の写真や高精細な画像をライティングの色情報に使用して、シーンをレンダリングする方法。広いレンジの明るさ情報を記録できるHDRIを用いることで、自然な光と陰影を表現できる
はじめに この記事では、WebGL 2.0について概要レベルで説明します。 「あれ? いつもみたいに細かくやらないの?」というツッコミもあるかもしれませんが、本記事、実は私が最近始めた「WebGL Learning Path JP」というWebGL学習支援紹介サイトのコンテンツの一部としてリンクすることを前提にしているものですので、そんな流れになっています。 そのうち細かい説明も別の記事でやるかもしれませんが…、ひとまず今回は概要レベルです。 すでに概要を説明されている先人がいた…。 皆さんご存知、WebGLといえば学習スクール等も運営されている @doxas さんが、かなり昔にWebGL 2.0についてのスライドを公開されています。 当時から目をつけてたって、すごいよ…。 WebGL 2.0の概要:「WebGL 2.0 は WebGL 1.0の増強版だ!」 @doxasさんのスライドと同
はじめに 皆さんこんにちは! 日本のWebGL界において、意識高い系WebGLおじさんとして知られるエマ・デュランダルさんですよ!(挨拶) さて、皆さんWebGL楽しんでますか? WebGLはネイティブのOpenGLと違い、glGetErrorとかglShaderInfoLogとかで明示的にエラー確認を行わなくても、エラーが発生した際はブラウザが親切にちゃんとコンソールにエラーメッセージを出してくれます。 非常に3Dプログラミングしやすい環境だと思います。 それでも、「どうしてもこのエラーが取れない!! 正しくWebGLのAPIを呼び出してるはずなのに、どうしてエラーが出るの!? 亡霊かよこのエラー!」っと叫びたくなる時もあるものです。 どうしてか。大抵の原因は、WebGL(及びそのベースとなったOpenGL ES)のAPIについての理解不足にあるんです。 おやおや、今日もWebGLで悩め
この記事はWebGL Advent Calendar 2015の9日目の記事です。 ご注意 本記事は2015年当時に書いた記事なのですが、GPUがGeForce 8x00シリーズ以降、SIMDからSIMTという並列実行形式に切り替わった頃から状況が大きく変わりました。 以前は本記事でも紹介するインターリーブ形式の頂点データの方が高速だったのですが、現在のGPUでは多くの環境で非インターリーブの方が高速とされています。 AMD GPUにおいても、GCNアーキテクチャ(PS4以降の世代)から(それまでのVLIWから)SIMTに切り替わり、非インターリーブを推奨されているようです。 WebGLは基本的にネイティブ3D APIへのマッピングに過ぎないため、この傾向はおそらくWebGLでも同様と考えられます。 とはいえ、インターリーブ(AoS)や非インターリーブ(SoA)はCGをやる上でいずれ避けて
安藤日記 安藤日記:デジタルガジェット好き「安藤幸央」の日々のメモ ( yukio.andoh@gmail.com ) [ http://twitter.com/yukio_andoh ] Design Sprint Newsletter https://designsprint.substack.com/ ( via. Behind the magic of AKQA Winterlands ) #WebGL Performance Tuning WebGLコンテンツ/プログラムの速度をコツコツと速くするための、 パフォーマンスチューニング観点をまとめました。 まずはプロファイリングが重要。 闇雲にチューニングしても、あまり速くならない場合もあります。 また、最初の設計や、ハードウェア性能を知った上でのデータ量の見積もりも重要です。 ■WebGLプロファイリングのコツ ●グラフィックスパ
by Patricio Gonzalez Vivo and Jen Lowe This is a gentle step-by-step guide through the abstract and complex universe of Fragment Shaders. Contents About this book Getting started What is a shader? “Hello world!” Uniforms Running your shader Algorithmic drawing Shaping functions Colors Shapes Matrices Patterns Generative designs Random Noise Cellular noise Fractional brownian motion Fractals Image
OpenGL。その単語の響きだけで素晴らしく魅力的に思える 3D コンピューターグラフィックスライブラリは、これまで何人もの駆け出しゲームプログラマーに幾度と無く挫折を味わわせてきた。「ゲーム作るならやっぱり高速に描画できる OpenGL でしょ。でも自分が作るゲームに 3D はいらないし、しかも難しそうだし、別に 2D 描画だけできればいいや」 と、軽い気持ちで手を出したのが運の尽き、世の中そんなに甘くはなかった。OpenGL というその難攻不落城は私達の進む道を阻むように高々とそびえ立っている。 OpenGL がコレほどまでに取っ付きにくいのは 気軽に Hello World できない からなんじゃないかと思う。OpenGL の場合だとそれは何かしら 1 つの図形を表示することにあたるのかな。でもたったそれだけなのに、覚えることが山ほどありすぎて全然本題にたどり着くことができないし、O
Special Thanks to @hagat and @teehah for reviewing my articles! 近年、WebGLに流行の兆しが出てきました。WebGLとは、ブラウザに何らプラグインをインストールすることなく、JavaScriptよりGPUを使用した3Dの表示を可能とする技術です。プラグインのインストールが必要ないとはいえ今までは対応ブラウザが少なくあまり実用的ではありませんでしたが、先日のiOS8で正式に対応されたことでモバイルブラウザにおいて対応率が跳ね上がり、スマートフォンにおいてブラウザベースで3Dのゲーム等を作れる可能性が急激に高まりました。 今回WebGL Advent Calendarの一環として、生WebGLで3Dのオブジェクトを表示するところまで挑戦してみます。WebGLにはthree.jsを始めとして有用なライブラリがたくさんあり、大抵の場
最近 WebGL の勉強を始めまして、doxas さんが主催している WebGL 勉強会に参加している。 WebGL、かなりややこしい感じなので、受講した日はその日の情報を咀嚼しようと思った。 (有料の講座ですが、こういうの書くのは講師の方に許可得てます。) 今日は WebGL の基本的な部分の話だった。 基本の部分で既に無事死亡している。 WebGL とは GPU に直接アクセスできるブラウザに組み込まれた API で、OpenGL というネイティブで動作するグラフィック API を、ブラウザから呼び出すパイプ的な存在。 直接 GPU を利用できるので、すっごい高速。ぬるぬるしてるのはそういうことなんですね。 ただ、ブラウザに組み込まれた API ということは、つまりブラウザ側の実装に依存しているというわけで、ブラウザ間の差異や、そもそも OS レベルで無効化されてることもあるそう。 ま
And still no Shakespeare... Ever find yourself in a position where you absolutely, positively have to get a ton of monkeys on screen with a single draw call? Yeah, okay, me neither. (At least, not until I put together the demo for this post.) But there's certainly occasions when it makes a lot of sense to redraw the same mesh many times with some minor tweak like position, orientation, color, etc.
頂点情報をより扱いやすく 前回は、WebGL の拡張機能のひとつである float texture を用いて、頂点テクスチャフェッチを行いました。実用性はあまりないサンプルでしたが、float texture を利用することの可能性のひとつとして参考にしていただければと思います。 さて、今回ですが VAO (vertex array object)を扱ってみようと思います。VAO は、標準の WebGL では利用できない技術ですが、float texture と同様に拡張機能として実装されており、同機能を有効化することで初めて利用が可能になります。 とはいえ、VAO を使ったら何が嬉しいのか、というかそもそも VAO ってなんやねんという人も意外と多いのではないでしょうか。※自分はそうでした(笑) 今回は、この vertex array object について見ていくことにしましょう。 V
Build and Share your best shaders with the world and get Inspired Latest contributions: "Gradinhas" by Elsio 9 minutes ago, "cirlccleMaking" by jessesound 45 minutes ago, "Simple Raytraced Sphere Example" by Spheya 1 hour ago, "Better Graphing Calculator" by ThePlaneGuy45 2 hours ago, "dancing points" by nayk 2 hours ago
GLSL.io GPU のパワーを使って画面遷移を実行しちゃおうぜ! っていうことですね。 いろんなものが既に揃ってますが、自分でカスタムすることもできます。 エディタ内蔵したページもあり非常に素晴らしい。
OpenGL ES Shading Language (GLSL) Data types and constants Scalar types Vector types Matrix types Custom types Texture types & functions Texture types Texture functions Built-in variables & constants Variables Constants Control flow and qualifiers Control flow Qualifiers Functions Common functions Power functions Trigonometric functions Geometric functions Matrix functions This documentation is ba
四元数(クォータニオン)でトーラスを回転 なかなかGLSLのサンプルに到達できないのですが、GLSLの前に、モデルをグリグリ動かすことはやっておいた方がいいと思い、四元数(クォータニオン)でモデルを回転するサンプルを作成しました。クォータニオンについては、ネット上にいろいろ解説がでており、私はそれよりもきちんと説明できる自信はないのですが、簡単に紹介します。 クォータニオンは、一つの実数部と三つの虚数部(みたいなもの)i, j, kから成る数で、次のように表記します。 ここで、i2 = j2 = k2 = ijk = -1 が成り立ちます。3次元の座標(x, y, z)は、クォータニオンを使用して次のように表現します。 また、任意軸 (ax, ay, az) 回りのθ回転は、次のように表すことができます。 この時、3次元座標pの任意軸回りの回転qは、次のような計算が成り立ちます。 ここで、
Note: It is implied that all functions and symbolic names are methods and properties on a WebGL context object Buffers Object createBuffer void Create a buffer object void deleteBuffer Object buffer Delete a buffer object. void bindBuffer ulong target, Object buffer Bind a buffer object. Accepted values for target are: ARRAY_BUFFER ELEMENT_ARRAY_BUFFER void bufferData ulong target, Object dta, ulo
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く