コンピュータグラフィックスS 演習資料



Similar documents
コンピューターグラフィックスS

コンピュータグラフィックスS 演習レポート課題

免許法認定公開講座: コンピュータグラフィックス

している 5. これに 対 して 親 会 社 の 持 分 変 動 による 差 額 を 資 本 剰 余 金 として 処 理 した 結 果 資 本 剰 余 金 残 高 が 負 の 値 となるような 場 合 の 取 扱 いの 明 確 化 を 求 めるコメントが 複 数 寄 せられた 6. コメントでは 親

2 県 公 立 高 校 の 合 格 者 は このように 決 まる (1) 選 抜 の 仕 組 み 選 抜 の 資 料 選 抜 の 資 料 は 主 に 下 記 の3つがあり 全 高 校 で 使 用 する 共 通 の ものと 高 校 ごとに 決 めるものとがあります 1 学 力 検 査 ( 国 語 数

2016 年 度 情 報 リテラシー 変 更 された 状 態 同 様 に 価 格 のセルを 書 式 設 定 する 場 合 は 金 額 のセルをすべて 選 択 し [ 書 式 ]のプルダウンメニューか ら[ 会 計 ]を 選 択 する すると が 追 加 され 金 額 としての 書 式 が 設 定 さ

1. 前 払 式 支 払 手 段 サーバ 型 の 前 払 式 支 払 手 段 に 関 する 利 用 者 保 護 等 発 行 者 があらかじめ 利 用 者 から 資 金 を 受 け 取 り 財 サービスを 受 ける 際 の 支 払 手 段 として 前 払 式 支 払 手 段 が 発 行 される 場 合

コンピュータグラフィックスS 演習資料

R4財務対応障害一覧

<4D F736F F D20819C486F70658F6F93588ED297708AC7979D89E696CA837D836A B E A2E646F63>

SXF 仕 様 実 装 規 約 版 ( 幾 何 検 定 編 ) 新 旧 対 照 表 2013/3/26 文 言 変 更 p.12(1. 基 本 事 項 ) (5)SXF 入 出 力 バージョン Ver.2 形 式 と Ver.3.0 形 式 および Ver.3.1 形 式 の 入 出 力 機 能 を

6. 登 録 料 第 3 次 審 査 を 合 格 した 者 は 審 査 当 日 登 録 料 を 納 入 すること ( 初 段 )5,500 円 ( 弐 段 )7,000 円 ( 参 段 )10,000 円 別 紙 審 査 に 必 要 な 費 用 について も 必 ず 確 認 ください 初 段 の 第

続 に 基 づく 一 般 競 争 ( 指 名 競 争 ) 参 加 資 格 の 再 認 定 を 受 けていること ) c) 会 社 更 生 法 に 基 づき 更 生 手 続 開 始 の 申 立 てがなされている 者 又 は 民 事 再 生 法 に 基 づき 再 生 手 続 開 始 の 申 立 てがなさ

一 括 登 録 方 法 一 括 登 録 をするには 予 め 専 用 の CSV ファイルを 作 成 する 必 要 があります 普 段 エクセルファイルで 管 理 をされている 方 は, 以 下 の 3 列 のみのデータとなるようにデータを 加 工 して CSV ファイルとして 保 存 して 下 さ

PowerPoint プレゼンテーション

<4D F736F F D F4390B3208A948C E7189BB8CE F F8C668DDA97702E646F63>

文科省様式3-2集計オプションマニュアル

<4D F736F F D204D46834E A6D92E8905C8D905F93B193FC819593FA8E9F95D C5292E646F63>

も く じ 1 税 源 移 譲 1 2 何 が 変 わったのか 改 正 の 3 つ の ポイント ポイント1 国 から 地 方 へ 3 兆 円 規 模 の 税 源 が 移 譲 される 2 ポイント2 個 人 住 民 税 の 税 率 構 造 が 一 律 10%に 変 わる 3 ポイント3 個 々の 納

特 徴 差 分 点 検 レセ 楽 netの 点 検 方 式 は レセ 電 データを 使 用 した 差 分 点 検 です 前 回 点 検 分 と 比 較 して データ 内 容 と 記 録 順 が 異 なる 場 合 のみ 点 検 を 行 います 追 加 されたデータの 点 検 実 施 病 名 追 加 さ

検 討 検 討 の 進 め 方 検 討 状 況 簡 易 収 支 の 世 帯 からサンプリング 世 帯 名 作 成 事 務 の 廃 止 4 5 必 要 な 世 帯 数 の 確 保 が 可 能 か 簡 易 収 支 を 実 施 している 民 間 事 業 者 との 連 絡 等 に 伴 う 事 務 の 複 雑

H28記入説明書(納付金・調整金)8

< 目 次 > 8. 雇 用 保 険 高 年 齢 雇 用 継 続 給 付 27 ( 育 児 休 業 給 付 介 護 休 業 給 付 ) 8.1 高 年 齢 雇 用 継 続 給 付 画 面 のマイナンバー 設 定 高 年 齢 雇 用 継 続 給 付 の 電 子 申 請 高

個人向け国債の事務取扱いに関する細則

10 期 末 現 在 の 資 本 金 等 の 額 次 に 掲 げる 法 人 の 区 分 ごとに それぞれに 定 める 金 額 を 記 載 します 連 結 申 告 法 人 以 外 の 法 人 ( に 掲 げる 法 人 を 除 きます ) 法 第 292 条 第 1 項 第 4 号 の5イに 定 める

WEB版「新・相続対策マスター」(ご利用の手引き)

(Microsoft Word - \215u\213`\203m\201[\203g doc)

目 次 1. ログイン ユーザー 登 録 TOP 職 員...8 (1) 職 員 の 名 刺 表 示...8 (2) 職 員 の 名 刺 一 括 ダウンロード...8 (3) 職 員 の 名 刺 帳 から 検 索 検 索...9 (1) 氏 名

<4D F736F F D B796EC8CA7835C F815B E646F63>

<4D F736F F D2091E F18CB48D C481698E7B90DD8F9590AC89DB816A2E646F63>

平成21年10月30日

PowerPoint プレゼンテーション

計算式の取り扱い

< F2D8CFA944E8AEE8BE08BC696B195F18D908F B8C816A>

(Microsoft Word - \215u\213`\203m\201[\203g doc)

数学

MetaMoJi ClassRoom/ゼミナール 授業実施ガイド

年金通信25-30厚年基金見直し(法改正概要)

文書管理

目 次 1.はじめに 書 式 の 説 明 表 紙 スケジュール 組 入 れ 基 準 併 用 禁 止 薬 併 用 注 意 薬 同 種 同 効 薬 医 師 モニタリング..

Microsoft Word - zeisyou9記載の手引.doc

( 別 途 調 査 様 式 1) 減 損 損 失 を 認 識 するに 至 った 経 緯 等 1 列 2 列 3 列 4 列 5 列 6 列 7 列 8 列 9 列 10 列 11 列 12 列 13 列 14 列 15 列 16 列 17 列 18 列 19 列 20 列 21 列 22 列 固 定

Ⅰ 校 外 における 研 修 の 留 意 点 1 校 外 における 研 修 のコマ 数 の 考 え ア) 午 前 午 後 の 講 座 は 0.5 日 (0.5 コマ) イ) 全 日 の 講 座 は 1.0 日 (1.0 コマ) 2 校 外 における 研 修 として 選 択 できない 講 座 研 修

GRIDY SFA カスタム 項 目 操 作 ガイド 用 本 書 はに 必 要 な 操 作 を 解 説 しております は GRIDY SFA ののことです GRIDY SFA へ 申 し 込 み 最 初 に 登 録 を 行 った 方 がそのままとなります カスタム 項 目 はの 方 のみ 操 作 可

<4D F736F F D2091DE90458F8A93BE82C991CE82B782E98F5A96AF90C582CC93C195CA92A58EFB82CC8EE888F882AB B315D2E312E A2E646F63>

の 基 礎 の 欄 にも 記 載 します ア 法 人 税 の 中 間 申 告 書 に 係 る 申 告 の 場 合 は 中 間 イ 法 人 税 の 確 定 申 告 書 ( 退 職 年 金 等 積 立 金 に 係 るものを 除 きます ) 又 は 連 結 確 定 申 告 書 に 係 る 申 告 の 場

税金読本(8-5)特定口座と確定申告

KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2

2 科 学 研 究 費 助 成 事 業 のトップページ 画 面 が 表 示 されます [ 研 究 者 ログイン]をクリック します 掲 載 している 画 面 は 例 示 です 随 時 変 更 されます 3 科 研 費 電 子 申 請 システムの 応 募 者 ログイン 画 面 が 表 示 されます e

図 2 エクスポートによるシェープファイルの 新 規 保 存 新 規 保 存 するファイルは,より 分 かりやすい 名 前 をつけて 適 切 なフォルダ(shape フォル ダにまとめておくのがよい) 上 に 保 存 しておく 2 / 10

Microsoft Word - 第3章.doc

2.リリース 時 期 ( 予 定 ) 2-1.Eiボードダウンロードマネージャーの 公 開 2016 年 9 月 6 日 ( 火 ) 2-2.マイページのダウンロード 公 開 2016 年 9 月 6 日 ( 火 ) 2-3.オプションのCD 保 守 契 約 の 場 合 ( 送 品 開 始 日 )

質 問 票 ( 様 式 3) 質 問 番 号 62-1 質 問 内 容 鑑 定 評 価 依 頼 先 は 千 葉 県 などは 入 札 制 度 にしているが 神 奈 川 県 は 入 札 なのか?または 随 契 なのか?その 理 由 は? 地 価 調 査 業 務 は 単 にそれぞれの 地 点 の 鑑 定

第1章 簿記の一巡

返還同意書作成支援 操作説明書

やさしく名刺ファイリング v.3.0 操作マニュアル

<4D F736F F D E598BC68A8897CD82CC8DC490B68B7982D18E598BC68A8893AE82CC8A C98AD682B782E993C195CA915B C98AEE82C382AD936F985E96C68B9690C582CC93C197E1915B927582CC898492B75F8E96914F955D89BF8F915F2E646F6

面 を 保 佐 人 又 は 補 助 人 の 同 意 を 要 する 場 合 は 同 意 を 証 する 書 面 を 提 出 する ものとする 前 項 の 場 合 代 理 人 は 代 理 人 自 身 の 本 人 であることを 証 する 書 面 を 保 佐 人 及 び 補 助 人 は 株 主 本 人 の 保

新 生産管理システム ご提案書 2002年10月15日 ムラテック情報システム株式会社

7 月 は 算 定 基 礎 届 の 提 出 月 です 算 定 基 礎 届 と は 事 業 主 は 7月 1日 現 在 の 被 保 険 者 すべてについて その 年 の 4月 5月 6月 に 支 給 した 報 酬 について 届 出 をしなければなりません = 図 1 この 届 出 は 毎 年 1回 そ

図 1 抱 合 株 式 がない 場 合 の 非 適 格 合 併 により 増 加 する 資 本 金 等 の 額 の 計 算 合 併 法 人 株 式 の 価 額 - 移 転 純 資 産 価 額 (2) 合 併 法 人 株 式 等 のみなし 株 式 割 当 等 会 社 法 上 抱 合 株 式 には 合 併

改 定 履 歴 改 訂 日 改 訂 理 由 及 び 内 容 承 認 者 確 認 者 改 訂 者 05/8/7 新 版 発 行 05/0/5 推 奨 動 作 環 境 を 追 記

5 振 込 依 頼 書 の 作 成 方 法 ()ツールの 起 動 コピーまたはダウンロードしたツールをダブルクリックして 開 いてください (ツール 起 動 の 際 マクロを 有 効 にしてください ) ダブルクリック 後 以 下 のメッセージが 出 力 されますので 読 み 取 り 専 用 ボタン

データベースS 演習資料

4 応 募 者 向 けメニュー 画 面 が 表 示 されます 応 募 者 向 けメニュー 画 面 で [ 交 付 内 定 時 の 手 続 を 行 う] [ 交 付 決 定 後 の 手 続 を 行 う]をクリックします 10

(別紙3)保険会社向けの総合的な監督指針の一部を改正する(案)


PowerPoint プレゼンテーション

資料2-2 定時制課程・通信制課程高等学校の現状

1-1 建 築 物 等 保 守 管 理 業 務 業 務 の 実 施 方 針 本 業 務 の 実 施 方 針 等 について 記 載 してください なお 以 下 の 事 項 については 必 ず 記 載 して ください ( 施 設 維 持 管 理 業 務 全 体 で A4 判 180 枚 以 内 で 記

全設健発第     号

Office 10 パッケージ版「リンク集」

リング 不 能 な 将 来 減 算 一 時 差 異 に 係 る 繰 延 税 金 資 産 について 回 収 可 能 性 がないも のとする 原 則 的 な 取 扱 いに 対 して スケジューリング 不 能 な 将 来 減 算 一 時 差 異 を 回 収 できることを 反 証 できる 場 合 に 原 則

御 利 用 規 約 Excel でつくる 配 光 曲 線, 直 射 水 平 面 照 度 Version 2.0 小 冊 子 を 御 利 用 頂 くにあたり 以 下 の 内 容 をよく 御 読 み 頂 き 御 同 意 の 上 御 利 用 頂 く 様 宜 しく 御 願 い 致 します 1. 著 作 物

②130401雇用促進計画パンフレット

かんたんQR

03_主要処理画面.xlsx

目 次 電 子 申 請 を 使 用 した 申 請 の 流 れ 1ページ 申 請 書 ( 概 算 保 険 料 申 告 書 )の 作 成 2ページ 作 成 した 申 請 書 の 送 信 31ページ 状 況 照 会 電 子 納 付 を 行 う 62ページ 返 送 書 類 の 取 得 75ページ お 問 い

<4D F736F F D20819C B78AFA95DB91538C7689E68DEC90AC289

第1回

_責)Wordトレ2-1章_斉

技術報告会原稿フォーマット

<4D F736F F F696E74202D2082C882E982D982C DD8ED88EE688F882CC82B582AD82DD C668DDA9770>

郵 便 為 替 により 公 売 保 証 金 を 納 付 する 場 合 郵 便 為 替 証 書 は 発 効 日 から 起 算 して 175 日 を 経 過 していないものに 限 ります 4) 現 金 及 び 銀 行 振 出 の 小 切 手 で 平 川 市 に 直 接 納 付 銀 行 振 出 の 小 切

[Q1] 復 興 特 別 所 得 税 の 源 泉 徴 収 はいつから 行 う 必 要 があるのですか 平 成 25 年 1 月 1 日 から 平 成 49 年 12 月 31 日 までの 間 に 生 ずる 所 得 について 源 泉 所 得 税 を 徴 収 する 際 復 興 特 別 所 得 税 を 併

ジョブ・カード様式

Microsoft PowerPoint - [参考資料1]本事業におけるe-Radの入力方法

別冊資料-11

コンピューターグラフィックスS

<91808DEC837D836A B5F8F488E528A6D E786C7378>

平成21年9月29日

2 研 究 資 源 共 通 化 統 合 検 索 システムソフトウェア 利 用 者 用 マニュアル(ゲートウェイシステム) 目 次 1. はじめに 主 な 利 用 の 流 れ 検 索 検 索 画 面 検 索 画 面 の 設 定...

<4D F736F F D208E9197BF CF092CA8F88979D82CC96CA82A982E782CC984890FC82CC90AE979D81698BC792B CE3816A2E646F63>

研究者情報データベース

スライド 1

毎 月 の 給 与 等 ( )を 一 定 の 等 級 区 分 にあてはめた 標 準 月 額 の 上 限 が 現 行 の47 等 級 から50 等 級 に 改 正 されます ( 別 紙 健 康 保 険 料 額 表 参 照 ) なお 法 改 正 に 伴 い 標 準 月 額 が 改 定 される 方 につい

PowerPoint プレゼンテーション

<4D F736F F D203193FA8AD45F95CA8E86325F89898F4B315F94F093EF8AA98D AD97DF914F82CC8FEE95F182CC8EFB8F C28E8B89BB2E646F63>

「1 所得税及び復興特別所得税の確定申告書データをお持ちの方」からの更正の請求書・修正申告書作成編

医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート - 目 次 - < 第 1 章 > 共 通 事 項 説 明 医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート 目 次 1.1 本 システムの 注 意 点 入 力 項 目 について 基 本 情

Transcription:

2015/5/26 コンピュータグラフィックスS 演 習 資 料 第 2 回 ポリゴンモデルの 描 画 九 州 工 業 大 学 情 報 工 学 部 システム 創 成 情 報 工 学 科 講 義 担 当 : 尾 下 真 樹 1. 準 備 : 前 回 の 演 習 本 日 の 演 習 は 前 回 の 演 習 で 作 成 したプログラムを 引 き 続 き 修 正 していく もし 前 回 の 演 習 を 行 っていな い もしくは 前 回 の 演 習 で 作 成 したプログラムを 無 くしてしまった 場 合 は 最 初 のサンプルプログラムを Moodle からダウンロードし 直 して 前 回 の 演 習 の 内 容 を 行 った 上 で 今 回 の 演 習 を 行 うこと なお 前 回 の 課 題 で 自 分 が Moodle に 提 出 したファイルをダウンロードすると コメント 中 の 日 本 語 の 文 字 コードが 自 動 的 に 変 換 されて 文 字 化 けすることがあるので 文 字 化 けしたソースファイルは 使 わないこと 2. 基 本 的 なポリゴンモデルの 描 画 ポリゴンモデルの 描 画 の 演 習 に 入 る 前 に まずは GLUT を 使 った 基 本 的 なポリゴンモデルの 描 画 を 試 して みる GLUT には あらかじめ 用 意 されたポリゴンモデルを 描 画 するための 関 数 がいくつか 用 意 されている 以 下 のように これまでのプログラムの ポリゴンを 描 画 していた 処 理 をコメントアウトし 立 方 体 を 描 画 する GLUT の 関 数 を 呼 び 出 してみる glutsolidcube( GLdouble size ) は 立 方 体 をポリゴンモデルとして 描 画 する 関 数 である 引 数 size には 立 方 体 の 辺 の 長 さを 指 定 する また 立 方 体 を 描 画 する 前 に 色 を 指 定 している ウィンドウ 再 描 画 時 に 呼 ばれるコールバック 関 数 変 換 行 列 を 設 定 ( 物 体 のモデル 座 標 系 カメラ 座 標 系 ) ( 物 体 が (0.0, 1.0, 0.0) の 位 置 にあり 静 止 しているとする) gltranslatef( 0.0, 1.0, 0.0 ); 物 体 (1 枚 のポリゴン)を 描 画 glbegin( GL_TRIANGLES ); glcolor3f( 0.0, 0.0, 1.0 ); glnormal3f( 0.0, 0.0, 1.0 ); glvertex3f(-1.0, 1.0, 0.0 ); glvertex3f( 0.0,-1.0, 0.0 ); glvertex3f( 1.0, 0.5, 0.0 ); 立 方 体 を 描 画 glutsolidcube( 1.5f ); プログラムを 上 記 のように 修 正 し コンパイル 実 行 して 立 方 体 が 描 画 されることを 確 認 せよ 1

次 は 球 を 描 画 してみる glutsolidsphere( GLdouble radius, GLdouble slices, GLdouble stacks ) は 球 を 近 似 するポリゴンモデルを 生 成 し 描 画 する 関 数 である 引 数 slices, stacks により 球 をどれだけ 細 かい ポリゴンモデルで 近 似 するかを 指 定 することができる これらの 値 を 大 きくすることで より 滑 らかな 球 が 描 画 されることになる(ただし その 分 処 理 時 間 がかかることになる) 立 方 体 を 描 画 glutsolidcube( 1.5f ); 球 を 描 画 glutsolidsphere( 1.0, 8, 8 ); プログラムを 上 記 のように 修 正 し 球 (を 近 似 したポリゴンモデル)が 描 画 されることを 確 認 せよ 次 に 球 を もっと 細 かいポリゴンモデルで 近 似 して 描 画 してみる 球 を 描 画 glutsolidsphere( 1.0, 16, 16 ); 上 記 のように 引 数 の 値 を 変 更 し 再 度 実 行 して 描 画 されるポリゴンモデルがどのように 変 化 するかを 確 認 せよ 3. ポリゴンモデルの 描 画 次 に 1 枚 のポリゴンの 代 わりに もう 少 し 複 雑 なポリゴンモデル( 四 角 すい)の 描 画 を 行 う OpenGL の 関 数 を 使 ってポリゴンを 描 画 する 方 法 として 以 下 のようないくつかのやり 方 がある 1. glvertex() 関 数 に 直 接 頂 点 座 標 を 記 述 する 方 法 2. 頂 点 データの 配 列 を 使 う 方 法 3. 頂 点 データとインデックスの 配 列 を 使 う 方 法 4. 頂 点 配 列 とインデックス 配 列 を 使 う 方 法 5. 頂 点 配 列 を 使 う 方 法 本 章 では 基 本 的 な 最 初 の 3 つの 方 法 を 使 って 以 下 のような 四 角 すいのポリゴンモデルを 描 画 する ( 残 りの2つの 方 法 については 後 日 余 裕 があれば 別 の 演 習 で 扱 う ) 2

3.1. 方 法 1: glvertex() 関 数 に 直 接 頂 点 座 標 を 記 述 する 方 法 最 も 単 純 は ここまでのプログラムと 同 様 glvertex() 関 数 の 呼 び 出 しをポリゴンモデルの 頂 点 数 分 記 述 す ることで OpenGL にポリゴンデータを 渡 す 方 法 である 以 下 のように この 方 法 を 使 って 四 角 すいを 描 画 するための 関 数 を 追 加 する(dysplay 関 数 の 前 に 追 加 す る) この 関 数 では glbegin( GL_TRIANGES ) ~ glend() を 使 用 し 頂 点 座 標 と 面 の 法 線 を 指 定 することで 6 枚 の 三 角 面 として 四 角 すいを 描 画 する なお 以 下 のプログラムリスト(list2-1.txt)は 講 義 のページに 用 意 されているので プログラムを 修 正 す るときには 用 意 されているプログラムリストをコピー&ペーストするなどして 利 用 しても 構 わない List2-1.txt 角 すいの 描 画 ( 頂 点 データを 関 数 内 に 直 接 記 述 する 方 法 ) void renderpyramid1() glbegin( GL_TRIANGLES ); +Z 方 向 の 面 glnormal3f( 0.0, 0.53, 0.85 ); glvertex3f( 0.0, 1.0, 0.0 ); glvertex3f(-1.0,-0.8, 1.0 ); glvertex3f( 1.0,-0.8, 1.0 ); -Z 方 向 の 面 glnormal3f( 0.0, 0.53,-0.85 ); glvertex3f( 0.0, 1.0, 0.0 ); glvertex3f( 1.0,-0.8,-1.0 ); glvertex3f(-1.0,-0.8,-1.0 ); +X 方 向 の 面 glnormal3f( 0.85, 0.53, 0.0 ); glvertex3f( 0.0, 1.0, 0.0 ); glvertex3f( 1.0,-0.8, 1.0 ); glvertex3f( 1.0,-0.8,-1.0 ); -X 方 向 の 面 glnormal3f(-0.85, 0.53, 0.0 ); glvertex3f( 0.0, 1.0, 0.0 ); glvertex3f(-1.0,-0.8,-1.0 ); glvertex3f(-1.0,-0.8, 1.0 ); 底 面 1 glnormal3f( 0.0,-1.0, 0.0 ); glvertex3f( 1.0,-0.8, 1.0 ); glvertex3f(-1.0,-0.8, 1.0 ); glvertex3f( 1.0,-0.8,-1.0 ); 3

底 面 2 glnormal3f( 0.0,-1.0, 0.0 ); glvertex3f(-1.0,-0.8,-1.0 ); glvertex3f( 1.0,-0.8,-1.0 ); glvertex3f(-1.0,-0.8, 1.0 ); 次 に この 関 数 を 描 画 関 数 (dysplay() 関 数 )から 呼 び 出 す これまでの 描 画 処 理 を 削 除 (コメントアウト)して 四 角 すいを 描 画 する 関 数 を 呼 び 出 すように 書 き 換 える ウィンドウ 再 描 画 時 に 呼 ばれるコールバック 関 数 変 換 行 列 を 設 定 ( 物 体 のモデル 座 標 系 カメラ 座 標 系 ) ( 物 体 が (0.0, 1.0, 0.0) の 位 置 にあり 静 止 しているとする) gltranslatef( 0.0, 1.0, 0.0 ); 今 までの 描 画 処 理 は 全 てコメントアウト 角 すいの 描 画 renderpyramid1(); 以 上 の 処 理 の 追 加 により 四 角 すいが 描 画 されることを コンパイル 実 行 して 確 認 する 3.2. 方 法 2: 頂 点 データの 配 列 を 使 う 方 法 方 法 1 では 全 ての 頂 点 ごとに glvertex() 関 数 の 呼 び 出 しを 記 述 する 必 要 があり ポリゴン 数 が 大 きくなる とプログラムが 長 くなってしまう そのため ポリゴンデータの 修 正 が 難 しいという 問 題 がある また ポリゴンデータがプログラム 中 に 直 接 記 述 されているため 例 えば 将 来 的 にポリゴンデータをファ イルから 読 み 込 んで 表 示 するようなこともできない そこで 頂 点 データを 配 列 に 格 納 しておき その 配 列 のデータを 使 って 描 画 を 行 う まず 以 下 のような ポリゴンデータを 構 成 する 頂 点 配 列 を renderpyramid() 関 数 の 前 にグローバル 変 数 として 定 義 する ここでは 四 角 すいを 構 成 する 三 角 面 8 枚 分 について 各 頂 点 の 座 標 と 法 線 の 配 列 を そ れぞれ 配 列 に 記 述 している List2-2.txt 角 すいの 全 頂 点 配 列 全 頂 点 数 const int num_full_vertices = 18; 全 頂 点 の 頂 点 座 標 static float pyramid_full_vertices[][ 3 ] = 0.0, 1.0, 0.0, -1.0,-0.8, 1.0, 1.0,-0.8, 1.0, +Z 方 向 の 面 0.0, 1.0, 0.0, 1.0,-0.8,-1.0, -1.0,-0.8,-1.0, -Z 方 向 の 面 0.0, 1.0, 0.0, 1.0,-0.8, 1.0, 1.0,-0.8,-1.0, +X 方 向 の 面 4

0.0, 1.0, 0.0, -1.0,-0.8,-1.0, -1.0,-0.8, 1.0, -X 方 向 の 面 1.0,-0.8, 1.0, -1.0,-0.8, 1.0, 1.0,-0.8,-1.0, 底 面 1-1.0,-0.8,-1.0, 1.0,-0.8,-1.0, -1.0,-0.8, 1.0 ; 底 面 1 全 頂 点 の 法 線 ベクトル static float pyramid_full_normals[][ 3 ] = 0.00, 0.53, 0.85, 0.00, 0.53, 0.85, 0.00, 0.53, 0.85, +Z 方 向 の 面 0.00, 0.53,-0.85, 0.00, 0.53,-0.85, 0.00, 0.53,-0.85, -Z 方 向 の 面 0.85, 0.53, 0.00, 0.85, 0.53, 0.00, 0.85, 0.53, 0.00, +X 方 向 の 面 -0.85, 0.53, 0.00, -0.85, 0.53, 0.00, -0.85, 0.53, 0.00, -X 方 向 の 面 0.00,-1.00, 0.00, 0.00,-1.00, 0.00, 0.00,-1.00, 0.00, 底 面 1 0.00,-1.00, 0.00, 0.00,-1.00, 0.00, 0.00,-1.00, 0.00 ; 底 面 1 次 に これらの 配 列 を 使 って 四 角 すいを 描 画 する renderpyramid2() 関 数 を 追 加 する 角 すいを 描 画 ( 方 法 2: 頂 点 データの 配 列 を 使 う 方 法 ) void renderpyramid2() int i; glbegin( GL_TRIANGLES ); for ( i=0; i<num_full_vertices; i++ ) glnormal3f( pyramid_full_normals[i][0], pyramid_full_normals[i][1], pyramid_full_normals[i][2] ); glvertex3f(????,????,???? ); 上 のプログラムでは 頂 点 座 標 を 指 定 する 部 分 を 空 欄 にしているので 各 自 正 しく 描 画 が 処 理 されるよう に プログラムを 追 加 すること ( 適 切 な 配 列 の 要 素 を 関 数 の 引 数 に 指 定 する ) また 追 加 した 新 しい 描 画 関 数 (renderpyramid2() 関 数 )が 呼 び 出 されるように 描 画 処 理 も 書 き 換 える ウィンドウ 再 描 画 時 に 呼 ばれるコールバック 関 数 角 すいの 描 画 renderpyramid1(); 削 除 またはコメントアウト renderpyramid2(); 以 上 の 処 理 により 前 のプログラムと 同 様 に 四 角 すいが 描 画 されることを コンパイル 実 行 して 確 認 せよ プログラムの 実 行 結 果 自 体 は 前 の 方 法 と 変 わらないが このようなプログラムにすることで ポリゴンデー タと 描 画 処 理 が 分 離 されるので ポリゴンデータの 修 正 などがやりやすくなる 3.3. 方 法 3: 頂 点 データとインデックスの 配 列 を 使 う 方 法 ポリゴンモデルのデータを 記 述 しやすくするため 同 じ 四 角 すいのポリゴンデータを 頂 点 の 配 列 と 三 角 面 インデックスの 配 列 に 分 けて 定 義 し それらを 使 って 描 画 する 方 法 を 試 してみる 以 下 のような ポリゴンデータを 表 す 配 列 を renderpyramid() 関 数 の 前 にグローバル 変 数 として 定 義 する 5

List2-3.txt 角 すいの 頂 点 配 列 + 三 角 面 インデックス 配 列 角 すいの 頂 点 数 const int num_pyramid_vertices = 5; 角 すいの 三 角 面 数 const int num_pyramid_triangles = 6; 角 すいの 頂 点 座 標 の 配 列 float pyramid_vertices[][ 3 ] = 0.0, 1.0, 0.0, 1.0,-0.8, 1.0, 1.0,-0.8,-1.0, -1.0,-0.8, 1.0, -1.0,-0.8,-1.0 ; 三 角 面 インデックス( 各 三 角 面 を 構 成 する 頂 点 の 頂 点 番 号 )の 配 列 int pyramid_tri_index[][ 3 ] = 0,3,1, 0,2,4, 0,1,2, 0,4,3, 1,3,2, 4,2,3 ; 三 角 面 の 法 線 ベクトルの 配 列 ( 三 角 面 を 構 成 する 頂 点 座 標 から 計 算 ) float pyramid_tri_normals[][ 3 ] = 0.00, 0.53, 0.85, +Z 方 向 の 面 0.00, 0.53,-0.85, -Z 方 向 の 面 0.85, 0.53, 0.00, +X 方 向 の 面 -0.85, 0.53, 0.00, -X 方 向 の 面 0.00,-1.00, 0.00, -Y 方 向 の 面 ( 底 面 1) 0.00,-1.00, 0.00 -Y 方 向 の 面 ( 底 面 2) ; 次 に これらの 配 列 を 使 って 四 角 すいを 描 画 する renderpyramid3() 関 数 を 追 加 する 角 すいの 描 画 ( 頂 点 の 座 標 データ+ 三 角 面 インデックス+ 三 角 面 の 法 線 色 データの 配 列 を 使 用 ) void renderpyramid3() int i, j; int v_no; glbegin( GL_TRIANGLES ); for ( i=0; i<num_pyramid_triangles; i++ ) glnormal3f( pyramid_tri_normals[i][0], pyramid_tri_normals[i][1], pyramid_tri_normals[i][2] ); for ( j=0; j<3; j++ ) v_no = pyramid_tri_index[ i ][ j ]; glvertex3f(????,????,???? ); 上 のプログラムでも 頂 点 座 標 を 指 定 する 部 分 を 空 欄 にしているので 各 自 正 しく 描 画 が 処 理 されるよう に プログラムを 追 加 すること ( 適 切 な 配 列 の 要 素 を 関 数 の 引 数 に 指 定 する ) また 新 しい 関 数 が 呼 び 出 されるように 描 画 処 理 も 書 き 換 える 6

ウィンドウ 再 描 画 時 に 呼 ばれるコールバック 関 数 角 すいの 描 画 renderpyramid1(); 削 除 またはコメントアウト renderpyramid2(); 削 除 またはコメントアウト renderpyramid3(); 同 様 に 以 上 の 処 理 により 同 じ 四 角 すいが 描 画 されることを コンパイル 実 行 して 確 認 せよ 4. 別 のポリゴンモデルの 描 画 ( 直 方 体 ) 次 に これまでに 学 習 した 方 法 の 練 習 として 今 度 は 以 下 のような 別 のポリゴンモデル( 直 方 体 )を 描 画 してみる ここでは 前 章 で 学 習 した 方 法 1~ 方 法 3 のうち 直 方 体 のポリゴンモデルを 最 も 容 易 に 記 述 できる 方 法 3 のやり 方 を 使 って 描 画 を 行 う また 今 回 のポリゴンモデルは 全 て 四 角 面 で 構 成 されるので 三 角 面 の 代 わ りに 四 角 面 を 使 って 描 画 する まずは 以 下 のように 直 方 体 の 頂 点 データ+ 四 角 面 インデックスデータを 定 義 する 直 方 体 は 全 ての 面 が 四 角 面 で 構 成 されるので 6 枚 の 四 角 面 として 描 画 する (もちろん 前 の 四 角 すいと 同 様 に 12 枚 の 三 角 面 として 描 画 することも 可 能 である ) 四 角 面 を 用 いることで さきほどの 四 角 すいと 異 なるのは 四 角 面 のインデックス(cube_index)が 4 個 の 頂 点 をとることである また 各 面 の 色 のデータも 配 列 として 表 現 するように 追 加 する List2-4.txt 直 方 体 の 頂 点 配 列 + 四 角 面 インデックス 配 列 const int num_cube_vertices = 8; const int num_cube_quads = 6; 頂 点 座 標 の 配 列 7

float cube_vertices[][ 3 ] = 0.8, 0.0, 0.4, 0-0.8, 0.0, 0.4, 1 0.8, 2.0, 0.4, 2-0.8, 2.0, 0.4, 3 0.8, 0.0,-0.4, 4-0.8, 0.0,-0.4, 5 0.8, 2.0,-0.4, 6-0.8, 2.0,-0.4, 7 ; 四 角 面 インデックス( 各 四 角 面 を 構 成 する 頂 点 の 頂 点 番 号 )の 配 列 int cube_index[][ 4 ] = 2,3,1,0, 7,6,4,5, 2,0,4,6, 3,7,5,1,??,??,???,??, 0,1,5,4 ; 四 角 面 の 法 線 ベクトルの 配 列 ( 四 角 面 を 構 成 する 頂 点 座 標 から 計 算 ) float cube_normals[][ 3 ] = 0.00, 0.00, 1.00, 0.00, 0.00,-1.00, 1.00, 0.00, 0.00, -1.00, 0.00, 0.00,???,????,???, 0.00,-1.00, 0.00 ; 四 角 面 のカラーの 配 列 float cube_colors[][ 3 ] = 0.00, 1.00, 0.00, 1.00, 0.00, 1.00, 1.00, 0.00, 0.00, 0.00, 1.00, 1.00, 0.00, 0.00, 1.00, 1.00, 1.00, 0.00 ; 直 方 体 を 描 画 ( 頂 点 の 座 標 データ+ 四 角 面 インデックス+ 四 角 面 の 法 線 色 データの 配 列 ) void rendercube() int i, j; int v_no; glbegin( GL_QUADS ); for ( i=0; i<num_cube_quads; i++ ) glnormal3f( cube_normals[i][0], cube_normals[i][1], cube_normals[i][2] ); glcolor3f( cube_colors[i][0], cube_colors[i][1], cube_colors[i][2] ); for ( j=0; j<4; j++ ) v_no = cube_index[ i ][ j ]; glvertex3f( cube_vertices[ v_no ][0], cube_vertices[ v_no ][1], cube_vertices[ v_no ][2] ); なお 上 のプログラムでは 1 枚 の 四 角 面 の 頂 点 番 号 と 法 線 を 空 欄 にしているので 各 自 抜 けている 四 角 面 が 正 しく 描 画 されるような 頂 点 番 号 の 組 及 び 法 線 ベクトルを 追 加 すること 5. ポリゴンモデルの 描 画 のまとめ 最 後 に 今 回 の 演 習 で 扱 ったポリゴンモデルをまとめて 描 画 してみる 変 換 行 列 を 利 用 して 3つのポリゴンモデルを 異 なる 位 置 に 描 画 する 変 換 行 列 については 後 日 の 講 義 演 習 で 学 習 するので ひとまず 今 回 は 以 下 のサンプルプログラムをそのまま 使 用 する 8

List2-5.txt もとの 変 換 行 列 の 設 定 はコメントアウト 変 換 行 列 を 設 定 ( 物 体 のモデル 座 標 系 カメラ 座 標 系 ) ( 物 体 が (0.0, 1.0, 0.0) の 位 置 にあり 静 止 しているとする) gltranslatef( 0.0, 1.0, 0.0 ); 今 までの 描 画 処 理 も 全 てコメントアウト 球 を 描 画 glpushmatrix(); gltranslatef( 1.5, 1.0, -1.0 );????????? glpopmatrix(); 角 すいの 描 画 glpushmatrix(); gltranslatef( -1.5, 1.0, -1.0 ); glcolor3f(???,???,???? ); renderpyramid3(); glpopmatrix(); 直 方 体 の 描 画 glpushmatrix(); gltranslatef( 0.0, 0.0, 1.0 ); rendercube(); glpopmatrix(); 右 のスクリーンショットと 同 様 の 画 面 を 実 現 するように 上 記 の プログラム 中 の 空 欄 を 埋 めて プログラムを 実 行 してみよ 9