このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。

Archives Details

M1Macで行う「RUSTではじめるOpenGL」

Rust

2023.02.25

この記事は最終更新日から1年以上が経過しています。

以前購入していた「RUSTではじめるOpenGL」をM1Macで写経してみました。

本書のソースはこちら

 

環境は以下の通り

  • MacOS 11.6

  • rustc 1.61.0

  • cargo 1.61.0

  • GLSL 1.4

最初は、crateも最新でやっていたのですが、どうもコンパイルエラーが起きたり、APIが異なったりしたので最終的には本書とも合わせる形で以下のバージョンで実装。

[dependencies]
sdl2 = "0.32.2"
gl = "0.14.0"
cgmath = "0.17.0"
c_str_macro = "1.0.2"
imgui = "0.2.1"
imgui-sdl2 = "0.7.0"
imgui-opengl-renderer = "0.6.0"
image = "0.22.3"

 

主にシェーダー周りでコンパイルエラーが発生する。

以下の様に意図しない表示にもなる。

  

 

シェーダー全体的に以下の様に修正。

バージョンの変更

#version 140
↓
#version 330

出力変数を自前で定義

out vec4 FragColor;を追加
in vec3 FragPosition;
out vec4 FragColor;
gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
↓
FragColor = vec4(1.0, 0.0, 0.0, 1.0);

頂点属性の順番を明示的に指定

in vec3 iPosition;
in vec3 iNormal;
in vec2 iTexCoords;
↓
layout(location = 0) in vec3 iPosition;
layout(location = 1) in vec3 iNormal;
layout(location = 2) in vec2 iTexCoords;
in vec3 iPosition;
in vec2 iTexCoords;
↓
layout(location = 0) in vec3 iPosition;
layout(location = 1) in vec2 iTexCoords;

これらの修正で、MaMacでも最後まで進めることができました。

Texture

Framebuffer Objects

OpenGL、ImGUI、シェーダー周りの勉強にとても良い書籍でしたのでよろしければ。

 

Comment

Related Article

【R-CHR】Rust + egui でファミコン用スプライトエディタを作った話 その7 macOS ネイティブメニュー・多言語対応・GitHub Actions でのリリース

2026.10.04

【R-CHR】Rust + egui でファミコン用スプライトエディタを作った話 その6 PNG インポートと 3 つのマッピング戦略

2026.10.02

【R-CHR】Rust + egui でファミコン用スプライトエディタを作った話 その5 図形ツール(Bresenham・楕円・塗りつぶし・スタンプ)

2026.09.30

【R-CHR】Rust + egui でファミコン用スプライトエディタを作った話 その4 ドットエディタの基礎とアンドゥ設計

2026.09.28

【R-CHR】Rust + egui でファミコン用スプライトエディタを作った話 その3 egui で組む 3 パネル UI とバンクビュー

2026.09.26

【R-CHR】Rust + egui でファミコン用スプライトエディタを作った話 その2 CHR の 2BPP フォーマットと iNES ヘッダ、パレット

2026.09.24

【R-CHR】Rust + egui でファミコン用スプライトエディタを作った話 その1 概要とアーキテクチャ

2026.09.22

ゲーム開発に必要な基本数学入門

2025.08.15

Godot 4 & Rust 始め方

2025.06.19

Rustでつくる ふっかつのじゅもん

2025.04.29

CATEGORY LIST

LATEST NEWS

【R-CHR】Rust + egui でファミコン用スプライトエディタを作った話 その7 macOS ネイティブメニュー・多言語対応・GitHub Actions でのリリース

Rust

2026.10.04

【R-CHR】Rust + egui でファミコン用スプライトエディタを作った話 その6 PNG インポートと 3 つのマッピング戦略

Rust

2026.10.02

【R-CHR】Rust + egui でファミコン用スプライトエディタを作った話 その5 図形ツール(Bresenham・楕円・塗りつぶし・スタンプ)

Rust

2026.09.30

【R-CHR】Rust + egui でファミコン用スプライトエディタを作った話 その4 ドットエディタの基礎とアンドゥ設計

Rust

2026.09.28

【R-CHR】Rust + egui でファミコン用スプライトエディタを作った話 その3 egui で組む 3 パネル UI とバンクビュー

Rust

2026.09.26

【R-CHR】Rust + egui でファミコン用スプライトエディタを作った話 その2 CHR の 2BPP フォーマットと iNES ヘッダ、パレット

Rust

2026.09.24

【R-CHR】Rust + egui でファミコン用スプライトエディタを作った話 その1 概要とアーキテクチャ

Rust

2026.09.22

M5Stack Stopwatchで、オリジナル LT(Lightning Talks)タイマーを作成した。

電子工作

2026.09.21

【Railway】GitHub Actions で定期的にサーバーをリスタートさせる

運用

2026.08.30

ラズパイが高騰しているのでストレス解消のためAliExpressで購入した電子パーツ達

電子工作

2026.08.02

【2026】【VMware Fusion】MacでWindowsを無料で扱う。

windows

2026.07.19

Raspberry Pi 5 でマインクラフトサーバーを立てる(Java版 × 統合版クロスプレイ対応)

RaspberryPi

2026.06.24

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

WEBデザイナーの、WEBデザイナーによる、WEBデザイナーの為のサイト。「みんなで書こう!」と仲間を募ってみたが、結局書くのは自分だけとなってしまいました。日々のメモを綴っていきます。

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

MAD CITY 北九州市で生まれ育つ。20代はバンド活動に明け暮れ、ふと「webデザイナーになりたい。」と思い、デジタルハリウッド福岡校入学。卒業後、数々の賞を受賞、web業界をざわつかせる。
現在、主に、ゲーム制作中心に港区六本木界隈で活動中。

FOLLOW US