VCSSL 3DCG開発ガイド

ここでは、VCSSLで3次元グラフィックス( 3DCG )を扱う方法を解説します。

はじめに

VCSSLで記述されたプログラムのコードは、「 VCSSLエンジン 」というインタープリタ上で実行されるため、環境依存の問題などをあまり気にすることなく、いろいろなPCの上で動作します。 特にVCSSLエンジンはJava言語で開発されているため、PC向けの各種OSに対応し、どこでもほぼ同様の動作が見込めます。

そして、この事は3次元のグラフィックス( 3DCG )についても例外ではありません。 VCSSLエンジンには、独自のソフトウェアレンダリング方式の3D描画エンジンが内蔵されています。 そのためユーザーは、専門的なライブラリや機器を別途用意しなくても、標準でそのまま、3Dグラフィックスを用いたプログラムを開発・実行できます。

もっとも、その反面としてVCSSLの3DCG機能は、GPUなどのハードウェアをフル活用する高度な開発環境( 3DCG専用のAPIなど )と比べると、描画速度やクオリティの点では遠く及びません。 しかしその代わり、VCSSLの3DCG機能では、性能よりも扱いやすさ・習得のしやすさを優先した設計を採用しています。 たとえば数学の回転行列などの難しい事を考えなくても、手軽に3DCGプログラミングを行えます。

VCSSLの3DCG機能は、たとえばデータやシミュレーションの可視化などで役に立ってくれるでしょう。 ここでの可視化とは、解析対象をグラフィカル( 絵的 )に、目に見える形で表現するという意味です。 VCSSLのVは「 Visualization( 可視化 ) 」の頭文字であり、VCSSLはまさにそのような用途のカバーを目指しています。

ここでは、実際にVCSSLのプログラム内で、3DCGを扱う方法について解説します。 なお、平面的な描画や画像処理を行う「 2DCG 」の扱いについては、別途 2DCGガイド をご参照ください。

それでは、VCSSLで3DCGプログラミングをはじめてみましょう!

目次


3次元コンピューターグラフィックス
3次元コンピューターグラフィックスの基礎知識について扱っています。

基盤の準備
グラフィックスデータやレンダラーの生成など、基盤の準備について扱っています。

マウス操作とアニメーション
マウス操作で始点変更を可能にする方法について扱っています。

フレームワークの使用
基盤の準備を自動化してくれる、フレームワークの使用方法について扱っています。

光源の生成・配置と各種設定
光源の生成と配置方法、および色や輝度の設定について扱っています。

モデルの生成・配置と各種標準モデル
立体モデルの生成と配置方法、および色々な種類の標準立体モデルについて扱っています。

ポリゴンの生成・配置と各種ポリゴン
立体モデルの構成要素である「ポリゴン」の生成と配置方法、および色々な種類のポリゴンについて扱っています。

立体の移動
立体の移動について扱っています。

立体の回転
立体の回転について扱っています。

立体の拡大と縮小
立体の拡大と縮小について扱っています。

立体の反転
立体の反転について扱っています。

立体の色設定
立体の色設定について扱っています。

立体の形状設定
標準モデルの形状設定について扱っています。

立体のフィル設定
標準モデルのフィル設定について扱っています。

立体の材質設定
立体の材質設定について扱っています。

座標系の考え方と生成・配置
座標系の概念と、生成・配置方法について扱っています。

座標系の移動
親座標系の座標系を基準とした、座標系の移動について扱っています。

座標系の歩行
自身の座標軸を基準とした、座標系の移動(歩行)について扱っています。

座標系の原点位置制御
座標系の原点位置制御について扱っています。

座標系の回転
親座標系の座標軸を基準とした、座標系の回転について扱っています。

座標系の自転
自身の座標軸を基準とした、座標系の回転(自転)について扱っています。

座標系のオイラー角姿勢制御
オイラー角による座標系の姿勢制御について扱っています。

カメラ座標系
カメラ座標系の概念と制御について扱っています。

ベクトルの生成・配置と基本的な操作・演算
ベクトルの生成と配置方法、および基本的な操作と演算について扱っています。

座標変換
座標変換について扱っています。

画面射影
3D空間上の位置と、画面上の位置との関係を求める「画面射影」について解説しています。

衝突判定
立体の衝突判定について解説しています。

( ※ OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。 )


この階層の目次
お知らせ

各ソフトウェアの最新版を一括でリリース、OpenJDKのJava実行環境(JRE)に対応
2019年03月06日 - RINEARNでは3月6日に、主要なソフトウェアの最新版を一括でリリースしました。今回のアップデートには、以前お知らせした、OpenJDKで生成したJREへの対応が含まれています。その概要等をお知らせします。

次回のVCSSL 3.4.10において、関数1個の挙動に非互換な修正が適用されます
2019年02月12日 - VCSSLの次回の正式リリース版3.4.10において、これまでドキュメントと実際の挙動が異なっていた描画系の関数1個に、非互換な修正が適用されます。その詳細と、使用コードでの対応方法について解説します。

RINEARNのソフトウェア向けにOpenJDKで生成したJava実行環境(JRE)の提供を開始
2019年02月06日 - Javaのリリースモデル変更への対応として、OpenJDKのjlinkツールを用いて、RINEARNのソフトウェア実行用に生成したJava実行環境(JRE)の提供を開始しました。その詳細と、今後の方針について解説します。

新着
画像の矩形(四角形)領域を切り抜く簡易ツール(複数ファイル一括処理版)

フォルダ内にある全ての画像ファイルを開き、その中の矩形(四角形)領域を切り抜いて、別のフォルダに保存する簡易ツールです。
2019年03月15日
画像の矩形(四角形)領域を切り抜く簡易ツール

画像ファイルを開き、その中の矩形(四角形)領域を切り抜いて保存する簡易ツールです。
2019年03月14日
入力された数式を積分して値とグラフを表示するツール

画面上で数式を入力すると、それを数値的に積分し、値とグラフを表示してくれるGUIツールです。
2019年01月20日
z = f(x,y,t) の形の数式を3Dグラフとしてアニメーション描画するツール

入力欄に z = f(x,y,t) の形の数式を入力すると、それを3次元のグラフにアニメーション描画してくれる簡易ツールです。
2018年11月26日
y = f(x,t) の形の数式を2Dグラフとしてアニメーション描画するツール

入力欄に y = f(x,t) の形の数式を入力すると、それを2次元のグラフにアニメーション描画してくれる簡易ツールです。
2018年11月25日
開発元Twitterアカウント