質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
GLFW

GLFWは、OpenGLを使用してアプリ開発を行うためのフレームワークです。Macにも対応しているマルチプラットフォームであることが特徴。ウィンドウ管理、解像度切り替え、入力管理などの機能を持ちます。

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

3011閲覧

OpenGLとGLFWで画像を表示したい

CabbageLettuce

総合スコア57

GLFW

GLFWは、OpenGLを使用してアプリ開発を行うためのフレームワークです。Macにも対応しているマルチプラットフォームであることが特徴。ウィンドウ管理、解像度切り替え、入力管理などの機能を持ちます。

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/04/15 18:38

前提・実現したいこと

Python3のOpenGLでウインドウに画像を表示したいのですが、調べてもよくわかりません

該当のソースコード

#!/usr/bin/env # coding: utf-8 import glfw from OpenGL.GL import * def main(): if not glfw.init(): raise RuntimeError("GLFW init failure") window = glfw.create_window(1280, 720, 'TestWindow', None, None) if not window: glfw.terminate() raise RuntimeError("Failed to create window") glfw.window_hint(glfw.CONTEXT_CREATION_API, glfw.EGL_CONTEXT_API) glfw.window_hint(glfw.CONTEXT_VERSION_MAJOR, 4) glfw.window_hint(glfw.CONTEXT_VERSION_MINOR, 0) glfw.window_hint(glfw.OPENGL_PROFILE, glfw.OPENGL_CORE_PROFILE) glfw.window_hint(glfw.REFRESH_RATE, 60) glfw.make_context_current(window) print('Vendor :\t\t', glGetString(GL_VENDOR).decode()) print('GPU :\t\t\t', glGetString(GL_RENDERER).decode()) print('OpenGL version :\t', glGetString(GL_VERSION).decode()) print("GLFW GL version : \t", glfw.get_version_string().decode()) while not glfw.window_should_close(window): glClearColor(0, 0, 0, 0) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) glfw.swap_buffers(window) glfw.poll_events() glfw.destroy_window(window) glfw.terminate() if __name__ == '__main__': main()

ここに、画像img/bg.pngを表示したいです。

補足情報(FW/ツールのバージョンなど)

Windows10 64bit
Python 3.8.2
PyOpenGL 3.1.5
GLFW 1.11.0
OpenGL version : 4.6.0 NVIDIA 445.75
GLFW GL version : 3.3.2 Win32 WGL EGL OSMesa VisualC DLL

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kyoya0819

2020/04/16 04:29

具体的にどこがわからないのでしょうか?
CabbageLettuce

2020/04/16 23:59

追記・修正依頼ありがとうございます! ・どうやって画像を表示するのか ・どういう関数を使うのか ・それをどこに書くのか が分かりません
hoshi-takanori

2020/04/17 03:32

OpenGL で画像を表示して何をしたいのでしょうか? ただ表示するだけなら、もっと簡単な方法はいくらでもあるのに…。
CabbageLettuce

2020/04/17 03:44

hoshi-takanoriさん、 追記・修正依頼ありがとうございます! ただ画像を表示するだけのアプリ作るわけではなく、今作りたいものを作るのに画像をウインドウに表示するのが必要なのです。 他のライブラリ(pygame、Tkinter)で作ったところ、CPU負荷が非常に高く、60fpsにも届かなかったため、OpenGLを使ってみようと思っています。
hoshi-takanori

2020/04/17 07:01

60fps で画像を動かしたいなら python じゃなくてネイティブコードにすべきでは。 また、3D ならともかく 2D なら OpenGL を使うのは問題をややこしくするだけだと思います。
CabbageLettuce

2020/04/17 08:03

負荷を減らすためにもOpenGLを使いたいです。 あと他の言語は使えないです…
hoshi-takanori

2020/04/17 08:35

生の OpenGL がどれだけ面倒くさいか分かってておっしゃってますか? OpenGL には「画像を表示する」という機能はありません。テクスチャに変換して GPU に渡して、各点に対応するピクセルを計算するシェーダーと呼ばれるプログラムを C に似た言語で書く必要があります。コード量が pygame や tkinter の 10 〜 100 倍になりますよ。python 側で配列を用意して描画のたびに OpenGL に渡していたら、そのオーバーヘッドで逆に遅くなる可能性もあります。本気で OpenGL をやるなら C か C++ じゃないと速度は出ないと思いますし、OpenGL の API を覚える間に他の環境 (Unity とか) を勉強した方が早いと思います。
CabbageLettuce

2020/04/17 08:40

遅くても面倒くさくてもいいので、とりあえず教えていただけませんでしょうか? OpenGLを使うか他の環境にするかはやってみてから決めます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問