プログラミング言語 VCSSL 公式サイト VCSSLの公式サイトへようこそ! このサイトでは、無料で使える実行環境や、各種ドキュメント、およびVCSSLで書かれたコードなどを公開しています。 VCSSLとは? VCSSLは、比較的ライトな計算・可視化処理、ちょっとしたGUIツールの作成などに使える、C言語風のスクリプト言語です。 3次元グラフソフト「リニアングラフ3D」等でも、制御用言語として標準サポートされています。 » もっと詳しく! - VCSSLってどんな言語? ドキュメント プログラミングガイドなどの公式ドキュメント類を公開しています。 スタートアップガイド プログラミングが初めての方に向けた入門ガイドです。 文法ガイド プログラミング経験者の方に向けた入門ガイドです。 即席ガイド C系言語の経験者の方が、即席で使うためのガイドです。 GUI開発ガイド ボタンや入力項目などのG
as3D の原理をあまり知らなかったので、ActionScript 3.0 で1から勉強してみた。1からなのでフレームワークは使わず、自力で実装していく。Web 上には色んな資料があってありがたいだけど、玉石混交な上に、有用なものでも一本道で幅の狭いものが多い。前提知識のない自分にとっては、資料間の関連性を理解するのが大変だった。なので、なるべく簡単なところからスタートしつつ、広く浅く体験していくことを目標としてみる。まずは、四面体をワイヤーフレームで表示するところからスタートしよう。四面体を定義するまずは、3次元上の点を表現する Point3D クラスを作る。 class Point3D { public var x:Number; public var y:Number; public var z:Number; public function Point3D(_x:Number =
3次元 CG は,コンピュータによってリアルな画像を作る技術である。 静止画だけでなく,CM,アニメーション,映画(実写との合成を含む)など多くの分野で使われている。 3次元 CG を作るためには,オブジェクトの形状の作成(モデリング)・質感(アトリビュート)の調整,照明・視点(カメラアングル)の調整など,たくさんのことを行わなければならない。 動画を作成するためには,さらに,モーションデザイン,カメラワークも必要である。また,多数のコマを作成するため,多くの計算時間も必要である。 3次元 CG は,映像をつくる過程(レンダリング)に多くの計算を必要とするため,かつては高価なコンピュータが必要であったが, コンピュータの処理能力が向上したため,最近ではパソコンがふつうに使われる。 * ここでいう3次元は,3D 映画 (ステレオ映画) や 3D 放送の意味で使われる,両眼視による 3D 映像
解説 ここからが3Dの本番となります。 今回は3Dの中で一番基本であり、数ええられないくらいの 3D 初心者を消してきた「座標変換」について説明します。 今までの中で間違いなく強敵で、数学もどんどん出てきます。 それでも 3D ゲームを作るに当たってこの行列変換は必ず必要になってきます。 気合を入れましょう。 ↑ 座標変換って何? そもそも座標変換とは何なのでしょうか? 座標については知ってますよね。 変換といえば、文字を変えていくあの変換ですよね。 座標変換とは文字通り「座標を変えていきます。」 3Dの座標変換は数式で演算することもできますが、通常は行列を用いて変換していきます。 さて、ここでプリミティブのことを思い出してください。 ポリゴンを形成するプリミティブは全て頂点から形成されています。 ということは頂点を操作すれば図形が変わるということです。 そこで、この性質を用いてこの頂点に
ホーム < ゲームつくろー! < DirectX技術編 < 知っていると便利?ワールド変換行列から情報を抜き出そう その39 知っていると便利?ワールド変換行列から情報を抜き出そう 今回はちょっと息抜きです。ワールド変換行列(座標変換行列)は3Dゲームで多分一番よく使う行列だと思います。この行列は回転、スケール、オフセットの3要素から作成します。では、すでに作成されたワールド変換行列からそれらの要素は抜き出す事ができるのでしょうか?またワールド変換行列には具体的にどのような情報が詰め込まれているのでしょうか?この章では、そのようなワールド変換行列から抜き出す事ができる情報について整理してみます。 ① ワールド変換行列の作り方 今更なのですが、ワールド変換行列の基本についてまとめておきます。ワールド変換行列は回転、スケール、オフセットの3要素を表す行列の掛け算で作成するのが一般的です。各行列
4次元ベクトルx,y,z,wのw要素、4x4行列の44要素 4次元空間の4番目の要素とはなんだろうか。 よく耳にするのは時間である。それは正しいか。 まず時間とは、物質の移動量を抽象化したもので、つまりは物質の移動である(地球の自転1回=24時間など)。 0次元(点)は移動できないが、1つ上の1次元空間では移動(y=tを定義)することができる。 また1次元(線)自身は移動できないが、2次元空間では移動(x=tを定義)することができる。 同じように2次元(平面)自身は移動できないが、3次元空間では移動(z=tを定義)することができる。 つまりN次元の時間とはN+M次元空間(Mは1以上)に存在している。 ただし、時間=時刻ではない。 過去や未来、つまり時刻は、なんらかのアルゴリズムもしくは記憶によってN次元空間の移動を計算した結果(=N次元空間)なのだ。 関数f(n, x)で表現するなら、fが
行列(Matrix) 前回、行列とはベクトルを座標変換するものであると書いたが、具体的にどうか。 ある数nと分数1/mを考える。 分数1/mは、そのまま1/mという数を表現するものであるが、nを1/mする数でもある。 ここで、ある数nを1Dベクトルとして見れば、分数1/mは行列と同じ作用(座標変換)をしていないだろうか。 そう考えると、分数1/mは行列なのである。 N次元ベクトルの座標変換に必要な情報はNの2乗個なので、分数1/mは1x1行列ということになる。 逆に考えると、行列は算数で学んだ分数と、何ら変わらないものなのである。 分数とは数であり、数を座標変換するものである。 行列とはベクトルであり、ベクトルを座標変換するものである。 4Dプログラミング(4x4行列を使う理由) 3Dプログラミングで3x3行列ではなく主に4x4行列を使うのは、使用する座標系が、実は4次元だからである。 そ
ベクトル(Vector) ベクトルとは、向きと長さを持った数である。それは2Dであっても3Dであっても変わらない。 ベクトル同士や複数のベクトルは加減算でき、下の図のようになる。 面白いことに、始点が同じベクトルを加算した結果は、2Dでは四角形、3Dでは立方体の対角線と重なる。 また始点もしくは終点が同じ2つのベクトルとそれらを減算した結果を結ぶと、三角形になる。 (後ほど詳しく述べるが、例えば次項のベクトル座標ではベクトルの始点が決まっているので、頂点と頂点を減算することで辺を表現する。) ベクトル座標(Vector Coordinate) ベクトル座標とは、原点(0, 0)から始まる(=始点を持った)ベクトルである。 3Dプログラミングではベクトル座標を使用する。 一次、二次関数などで使った原点(0, 0)で始まり位置を点で表す座標系を、デカルト座標(直交座標系)という。 例えば、同じ
座標変換 ・sin,cosについて 角度θがあるとします。ここでいう角度とは反時計回りならば正の値 時計回りならば負の値とします。X軸に対してθの角度をなしている 直線を考えます。この直線と半径1の円が交差している点のX座標の値が cosθ、Y座標の値がsinθとなります。 ・一次変換 (x,y)の点を反時計回りにθだけ回転させる場合(回転後の点は(x',y')) x' = x * cosθ - y * sinθ y' = x * sinθ + y * cosθ これを行列表現にすると |x'| = | cosθ -sinθ ||x| |y'| | sinθ cosθ ||y| 以下概念図 |x0' y0'| = x0 * ix + y0 * iy |x0' y0'| = |x0 y0||cosθ sinθ| |-sinθ cosθ| ・3次元の座標変換 x,y,z:変換前の座標; x',
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く