第21回 Dockerで3Dゲームを動かす――構築編:古賀政純の「攻めのITのためのDocker塾」(3/3 ページ)
前回はDocker環境で3Dゲームを稼働させるゴールや方法などについてご紹介しました。今回はその環境を構築していく上でのポイントや注意点を解説します。
描画を高速化する
以上で筆者の全ての疑問に対する技術要素、具体的な実装方法も明らかになりました。これで準備万端かと思いきや、ゲームアプリを楽しむ上で、実は検討すべき項目がまだ残っています。それは、描画速度です。
ゲームアプリの場合、ディスプレイに映像をスムーズに表示させなければならず、ビデオカードの性能を最大限に生かす必要があります。X Window Systemにおいて、ビデオカードを使って描画を高速に行うには、DRI(Direct Rendering Infrastructure)と呼ばれる仕組みを利用する必要があります。Linuxにおいて、OpenGLと呼ばれるグラフィックスのためのAPIが存在し、このOpenGLのオープンソース実装として、Mesa(メサ)と呼ばれるライブラリがあり、3Dグラフィックスを多用するゲームアプリで利用されています。このMesaは、DRIのフレームワーク上で描画速度の向上を行うことができるようになっており、ゲームアプリ側は、直接ビデオカードのグラフィックアクセラレータにアクセスすることができるようになります。X Window SystemとDRIの関係については、以下のURLにデータや制御の流れ図があります。
DRIを使う具体的な方法は、CentOS 7.xの場合、/dev/dri/cardXなどのデバイスファイルを利用します。今回、DockerコンテナでホストOSが稼働する物理マシンのビデオカードでDRIを使ってアクセスする必要がありますので、Dockerコンテナの起動時に、ホストOSの/dev/driをコンテナで共有するようにオプションを付与する必要があります。
# docker run \ ... --device=/dev/dri:/dev/dri \ ... ubuntu:mygame01 /bin/bash
次回はいよいよ3DグラフィックスのゲームアプリをDockerコンテナで稼働させてみます。
古賀政純(こが・まさずみ)
日本ヒューレット・パッカード株式会社 オープンソース・Linuxテクノロジーエバンジェリスト。兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバーのSE及びスーパーコンピューターの並列計算プログラミング講師、SIを経験。2006年、米国HPからLinux技術の伝道師として「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。プリセールスMVPを4度受賞。現在は日本HPにて、Linux、FreeBSD、Hadoopなどのサーバー基盤のプリセールスSE、文書執筆を担当。Red Hat Certified Virtualization Administrator, Novell Certified Linux Professional, Red Hat Certified System Administrator in Red Hat OpenStack, Cloudera Certified Administrator for Apache Hadoopなどの技術者認定資格を保有。著書に「CentOS 7実践ガイド」「Ubuntu Server実践入門」などがある。趣味はレーシングカートとビリヤード。
古賀氏の最新記事が読めるブログはこちら。
関連記事
- 第20回 Dockerで3Dゲームを動かす――準備編
非常に深い関係にあるゲームとコンピュータ。今回からDockerの環境で3Dゲームを稼働させる方法についてご紹介していきます。まずはその目的や方法、必要な環境などについてみていきましょう。 - 第17回 Dockerで植物が育つ様子を自動録画してみよう――その1
今回からDockerコンテナを使って動画の撮影や活用のための環境を構築する方法をご紹介していきます。Webカメラの使い方や録画データの保存、構築した環境の管理などはどうすればいいのでしょうか――まずは導入準備編です。 - 第18回 Dockerで植物が育つ様子を自動録画してみよう――その2
Dockerコンテナを使って動画の撮影や活用のための環境を構築する方法をご紹介します。今回は環境を具体的に構築する手順を取り上げます。 - 【古賀政純の「攻めのITのためのDocker塾」】バックナンバー
Copyright © ITmedia, Inc. All Rights Reserved.