SlideShare a Scribd company logo
1 of 7
慶應義塾大学藤代研究室& 玉泉山安国院 
中山雅紀 
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。 
FireMonkey の仕組み 
【A4】Delphi/C++テクニカルセッション
アジェンダ 
• FireMonkey とは? 
• シーンの作り方・・・ 
• 3Dモデルの作り方 
• 点・線・面のモデル・・・ 
• 座標変換~ベクトルと行列~ 
• 太陽系・・・ 
• イレギュラーテクニック 
• 複数視点・・・ 
• マテリアルの作り方 
• HLSL言語によるシェーダ実装・・・ 
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。2
FireMonkey とは? .意義 
• 2D/3D のコンポーネント・フレームワーク 
– 主にGUIの表示 
• マルチプラットフォーム 
– OS固有APIからの脱却 
• CG とGUI の融合 
– グラフィックス関連のアプリ制作が容易に! 
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。3
FireMonkey とは? .構造 
• シーングラフで表現 
– CG シーンへ転用可能 
– CG の概念でUI設計 
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。4 
床 
机 
コップ皿 
リンゴ(インスタンス) 
椅子 
人間 
木材 
ガラス 
陶器 
赤緑 
肌 
前40cm 
上70cm 
右10cm 左10cm 
後40cm 
上70cm 上40cm 
出典「FireMonkeyファーストインプレッション」
FireMonkey とは? .解放 
• リアルタイムCG の定番はGLUT 
– GUI が作れない 
– 低レベル実装が辛い 
• 高機能ゲームライブラリ 
– 大規模すぎてブラックボックス 
– 細かいところを弄れない 
• 俺々ライブラリ 
– マルチプラットフォーム化辛い 
– API バージョンの差異吸収辛い 
– GPU の対応レベルの確認辛い 
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。5
3Dモデルの作り方.ポリゴン 
• 三角面の集合 
– GPU は点・線・三角形 
しか描けない 
• 構成要素 
– 面 
• 3つの頂点への参照 
– 頂点 
• 位置座標 
• 法線 
– 面の垂直ベクトル 
• テクスチャ座標 
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。6 
座標 
法線 
面 
面 
面 
連続面 
不連続面 
0,0 
0,0 
0,1 
1,0 1,0 
1,1 
0,1 
1,1 
0.5,0
本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。7 
続きは 
http://embt.co/dcamp_slide 
からダウンロード

More Related Content

Similar to 「FireMonkeyの仕組み」

Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Atsuhiro Kubo
 
Eclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめにEclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめに
Akira Tanaka
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
 
CodeTemplateについて / SublimeText → Monodevelopに戻ってきた話
CodeTemplateについて / SublimeText → Monodevelopに戻ってきた話CodeTemplateについて / SublimeText → Monodevelopに戻ってきた話
CodeTemplateについて / SublimeText → Monodevelopに戻ってきた話
Keigo Ando
 

Similar to 「FireMonkeyの仕組み」 (19)

「マルチデバイスの荒海にこぎ出す新人エンジニアのためのソフトウェア開発の心得」
 「マルチデバイスの荒海にこぎ出す新人エンジニアのためのソフトウェア開発の心得」  「マルチデバイスの荒海にこぎ出す新人エンジニアのためのソフトウェア開発の心得」
「マルチデバイスの荒海にこぎ出す新人エンジニアのためのソフトウェア開発の心得」
 
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
 
Eclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめにEclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめに
 
120517 cf tour_london
120517 cf tour_london120517 cf tour_london
120517 cf tour_london
 
Realmについて
RealmについてRealmについて
Realmについて
 
プロ用CMSフレームワークテーマ「echo」のご紹介
プロ用CMSフレームワークテーマ「echo」のご紹介プロ用CMSフレームワークテーマ「echo」のご紹介
プロ用CMSフレームワークテーマ「echo」のご紹介
 
Howtoよいデザイン
HowtoよいデザインHowtoよいデザイン
Howtoよいデザイン
 
Uml速習会
Uml速習会Uml速習会
Uml速習会
 
Modeling Workshop
Modeling WorkshopModeling Workshop
Modeling Workshop
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
 
C#/.NETがやっていること 第二版
C#/.NETがやっていること 第二版C#/.NETがやっていること 第二版
C#/.NETがやっていること 第二版
 
「C++開発者のための最新プログラミングエッセンス」
 「C++開発者のための最新プログラミングエッセンス」  「C++開発者のための最新プログラミングエッセンス」
「C++開発者のための最新プログラミングエッセンス」
 
Xtext And Grails20091218
Xtext And Grails20091218Xtext And Grails20091218
Xtext And Grails20091218
 
Eclipse xtext 紹介
Eclipse xtext 紹介Eclipse xtext 紹介
Eclipse xtext 紹介
 
「RAD Studioで始めるモバイル開発 ~ コンポーネントで簡単入門!勘所も押さえよう」
 「RAD Studioで始めるモバイル開発 ~ コンポーネントで簡単入門!勘所も押さえよう」  「RAD Studioで始めるモバイル開発 ~ コンポーネントで簡単入門!勘所も押さえよう」
「RAD Studioで始めるモバイル開発 ~ コンポーネントで簡単入門!勘所も押さえよう」
 
CodeTemplateについて / SublimeText → Monodevelopに戻ってきた話
CodeTemplateについて / SublimeText → Monodevelopに戻ってきた話CodeTemplateについて / SublimeText → Monodevelopに戻ってきた話
CodeTemplateについて / SublimeText → Monodevelopに戻ってきた話
 
20120616i phonedeveloperworkshop
20120616i phonedeveloperworkshop20120616i phonedeveloperworkshop
20120616i phonedeveloperworkshop
 
XamarinStudio勉強会 2014/09/08
XamarinStudio勉強会 2014/09/08XamarinStudio勉強会 2014/09/08
XamarinStudio勉強会 2014/09/08
 
大規模Perl初心者研修を支える技術
大規模Perl初心者研修を支える技術大規模Perl初心者研修を支える技術
大規模Perl初心者研修を支える技術
 

More from Embarcadero Technologies

More from Embarcadero Technologies (20)

「事例で学ぶDelphi / C++Builder開発手法」
「事例で学ぶDelphi / C++Builder開発手法」「事例で学ぶDelphi / C++Builder開発手法」
「事例で学ぶDelphi / C++Builder開発手法」
 
「事例で学ぶDelphi / C++Builder開発手法」
「事例で学ぶDelphi / C++Builder開発手法」「事例で学ぶDelphi / C++Builder開発手法」
「事例で学ぶDelphi / C++Builder開発手法」
 
「Delphi / C++Builder / RAD Studio新バージョンの概要」
「Delphi / C++Builder / RAD Studio新バージョンの概要」「Delphi / C++Builder / RAD Studio新バージョンの概要」
「Delphi / C++Builder / RAD Studio新バージョンの概要」
 
「Web拡張、クラウド対応も万全!つなぐシステム構築法」
「Web拡張、クラウド対応も万全!つなぐシステム構築法」「Web拡張、クラウド対応も万全!つなぐシステム構築法」
「Web拡張、クラウド対応も万全!つなぐシステム構築法」
 
「エンバカデロの開発ツールビジネス戦略」
「エンバカデロの開発ツールビジネス戦略」「エンバカデロの開発ツールビジネス戦略」
「エンバカデロの開発ツールビジネス戦略」
 
「クラウド税務・会計・給与システム開発にスピードを!A-SaaSがSencha Ext JS/Sencha Testを導入した軌跡」
「クラウド税務・会計・給与システム開発にスピードを!A-SaaSがSencha Ext JS/Sencha Testを導入した軌跡」「クラウド税務・会計・給与システム開発にスピードを!A-SaaSがSencha Ext JS/Sencha Testを導入した軌跡」
「クラウド税務・会計・給与システム開発にスピードを!A-SaaSがSencha Ext JS/Sencha Testを導入した軌跡」
 
「iOS 12、Android 9時代の今からでも始められるモバイル開発入門」
「iOS 12、Android 9時代の今からでも始められるモバイル開発入門」「iOS 12、Android 9時代の今からでも始められるモバイル開発入門」
「iOS 12、Android 9時代の今からでも始められるモバイル開発入門」
 
「Ext JS未経験メンバーでパッケージ製品を作った話」
「Ext JS未経験メンバーでパッケージ製品を作った話」「Ext JS未経験メンバーでパッケージ製品を作った話」
「Ext JS未経験メンバーでパッケージ製品を作った話」
 
「コンポーネント/アプリケーション開発分離の重要性 ― VCL/FMXとExt JSの類似点の考察から見るその効果」
「コンポーネント/アプリケーション開発分離の重要性 ― VCL/FMXとExt JSの類似点の考察から見るその効果」「コンポーネント/アプリケーション開発分離の重要性 ― VCL/FMXとExt JSの類似点の考察から見るその効果」
「コンポーネント/アプリケーション開発分離の重要性 ― VCL/FMXとExt JSの類似点の考察から見るその効果」
 
「Creating Reusable UI Components with Ext JS (Ext JSでの再利用可能なUIコンポーネントの作成)」
「Creating Reusable UI Components with Ext JS (Ext JSでの再利用可能なUIコンポーネントの作成)」「Creating Reusable UI Components with Ext JS (Ext JSでの再利用可能なUIコンポーネントの作成)」
「Creating Reusable UI Components with Ext JS (Ext JSでの再利用可能なUIコンポーネントの作成)」
 
「マルチデバイスなDelphiで活かすWebアプリケーション」
「マルチデバイスなDelphiで活かすWebアプリケーション」「マルチデバイスなDelphiで活かすWebアプリケーション」
「マルチデバイスなDelphiで活かすWebアプリケーション」
 
「開発の現場でも役に立つボトムアップによるデータモデリング活用実例」
「開発の現場でも役に立つボトムアップによるデータモデリング活用実例」「開発の現場でも役に立つボトムアップによるデータモデリング活用実例」
「開発の現場でも役に立つボトムアップによるデータモデリング活用実例」
 
「SenchaユーザーのためのRAD Studio入門」
「SenchaユーザーのためのRAD Studio入門」「SenchaユーザーのためのRAD Studio入門」
「SenchaユーザーのためのRAD Studio入門」
 
「Delphi/C++BuilderユーザーのためのSencha入門」
「Delphi/C++BuilderユーザーのためのSencha入門」「Delphi/C++BuilderユーザーのためのSencha入門」
「Delphi/C++BuilderユーザーのためのSencha入門」
 
「Delphiマイグレーションの現状」
「Delphiマイグレーションの現状」「Delphiマイグレーションの現状」
「Delphiマイグレーションの現状」
 
「エンタープライズシステムの開発におけるSIerから見たSenchaの有効性」
「エンタープライズシステムの開発におけるSIerから見たSenchaの有効性」「エンタープライズシステムの開発におけるSIerから見たSenchaの有効性」
「エンタープライズシステムの開発におけるSIerから見たSenchaの有効性」
 
「『Web化したい』に応えるには? ― Senchaを活かすDelphi/C++中間サーバー構築法」
「『Web化したい』に応えるには? ― Senchaを活かすDelphi/C++中間サーバー構築法」「『Web化したい』に応えるには? ― Senchaを活かすDelphi/C++中間サーバー構築法」
「『Web化したい』に応えるには? ― Senchaを活かすDelphi/C++中間サーバー構築法」
 
「つながるシステム構築を可能にするDelphi / C++Builder / Sencha」
「つながるシステム構築を可能にするDelphi / C++Builder / Sencha」「つながるシステム構築を可能にするDelphi / C++Builder / Sencha」
「つながるシステム構築を可能にするDelphi / C++Builder / Sencha」
 
「開発者にコミットするエンバカデロのツール戦略 ― 新たにSenchaを製品ファミリーに迎えて」
「開発者にコミットするエンバカデロのツール戦略 ― 新たにSenchaを製品ファミリーに迎えて」「開発者にコミットするエンバカデロのツール戦略 ― 新たにSenchaを製品ファミリーに迎えて」
「開発者にコミットするエンバカデロのツール戦略 ― 新たにSenchaを製品ファミリーに迎えて」
 
「RAD Studioアプリケーションとバックエンドシステムを接続する」
「RAD Studioアプリケーションとバックエンドシステムを接続する」「RAD Studioアプリケーションとバックエンドシステムを接続する」
「RAD Studioアプリケーションとバックエンドシステムを接続する」
 

「FireMonkeyの仕組み」

  • 1. 慶應義塾大学藤代研究室& 玉泉山安国院 中山雅紀 本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。 FireMonkey の仕組み 【A4】Delphi/C++テクニカルセッション
  • 2. アジェンダ • FireMonkey とは? • シーンの作り方・・・ • 3Dモデルの作り方 • 点・線・面のモデル・・・ • 座標変換~ベクトルと行列~ • 太陽系・・・ • イレギュラーテクニック • 複数視点・・・ • マテリアルの作り方 • HLSL言語によるシェーダ実装・・・ 本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。2
  • 3. FireMonkey とは? .意義 • 2D/3D のコンポーネント・フレームワーク – 主にGUIの表示 • マルチプラットフォーム – OS固有APIからの脱却 • CG とGUI の融合 – グラフィックス関連のアプリ制作が容易に! 本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。3
  • 4. FireMonkey とは? .構造 • シーングラフで表現 – CG シーンへ転用可能 – CG の概念でUI設計 本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。4 床 机 コップ皿 リンゴ(インスタンス) 椅子 人間 木材 ガラス 陶器 赤緑 肌 前40cm 上70cm 右10cm 左10cm 後40cm 上70cm 上40cm 出典「FireMonkeyファーストインプレッション」
  • 5. FireMonkey とは? .解放 • リアルタイムCG の定番はGLUT – GUI が作れない – 低レベル実装が辛い • 高機能ゲームライブラリ – 大規模すぎてブラックボックス – 細かいところを弄れない • 俺々ライブラリ – マルチプラットフォーム化辛い – API バージョンの差異吸収辛い – GPU の対応レベルの確認辛い 本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。5
  • 6. 3Dモデルの作り方.ポリゴン • 三角面の集合 – GPU は点・線・三角形 しか描けない • 構成要素 – 面 • 3つの頂点への参照 – 頂点 • 位置座標 • 法線 – 面の垂直ベクトル • テクスチャ座標 本文書の一部または全部の転載を禁止します。本文書の著作権は、著作者に帰属します。6 座標 法線 面 面 面 連続面 不連続面 0,0 0,0 0,1 1,0 1,0 1,1 0,1 1,1 0.5,0