質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WebGL

WebGL(ウェブジーエル)は、ウェブブラウザで 3次元コンピュータグラフィックスを表示させるための標準仕様です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

3249閲覧

WEBGLを実装する際スクリプトを別ファイルから読み込む方法

seri

総合スコア422

WebGL

WebGL(ウェブジーエル)は、ウェブブラウザで 3次元コンピュータグラフィックスを表示させるための標準仕様です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/12/19 12:01

以下のような頂点シェーダを記述した場合(<head>等の表記は省略してます)

scc

1 2<script src="script.js" type="text/javascript"></script> 3<script id="vs" type="x-shader/x-vertex"> 4attribute vec3 position; 5attribute vec4 color; 6uniform mat4 mvpMatrix; 7varying vec4 vColor; 8 9void main(void){ 10 vColor = color; 11 gl_Position = mvpMatrix * vec4(position, 1.0); 12} 13</script>

外部jsファイル(script.js)からは

js

1//script.js 2 var c = document.getElementById('canvas'); 3 var gl = c.getContext('webgl'); 4 5 var shader; 6 var scriptElement = document.getElementById("vs"); 7 shader = gl.createShader(gl.VERTEX_SHADER); 8 gl.shaderSource(shader, scriptElement.text); 9 gl.compileShader(shader); 10 return shader; 11

のような形で頂点シェーダを読み込むことができますが
以下のように、頂点シェーダを別のファイルに分けた場合うまく作動しません。

scc

1 <script id="vs" src="WebGl/vert_shader" type="x-shader/x-vertex"></script> 2

おそらくscript.jsでscriptElement.textとしている箇所で読み込みができていないのですが、これはどうすれば読み込めるようになるのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

scriptタグでは読み込むことができません。
なので、この場合はAjax(XMLHttpRequest)を用いて非同期で読み込み、テキストファイルとして読み込んだあとに、シェーダソースとして指定してやる必要があります。

参考: XMLHttpRequest | MDN

投稿2016/12/19 13:22

edo_m18

総合スコア2283

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問