回答編集履歴

4

注意書き追記

2021/05/28 02:06

投稿

退会済みユーザー
test CHANGED
@@ -47,3 +47,11 @@
47
47
  rectangleVertex[5].uv[1] = sizeY * startSize.y;
48
48
 
49
49
  ```
50
+
51
+
52
+
53
+ 上記は質問中の画像とコードから考えた、机上のコードです。
54
+
55
+ 「1.0f」から引いてる箇所を削除し、上下を入れ替えてあります。
56
+
57
+ そもそもに使い方がよくないなど、それらの問題は考慮しておりません。

3

回答としておそらく不適切な部分を削除

2021/05/28 02:06

投稿

退会済みユーザー
test CHANGED
@@ -1,15 +1,3 @@
1
- [【OpenGLでゲームを作る】テクスチャを表示する](https://nn-hokuson.hatenablog.com/entry/2017/02/24/171230)
2
-
3
-
4
-
5
- > どの部分を使用するかは、テクスチャの左下を原点とするuv座標系で指定します。
6
-
7
-
8
-
9
- 追記
10
-
11
-
12
-
13
1
  2点指定なのに、暗黙的に「startSize」は左上を選択することになってるのがダサいですね。
14
2
 
15
3
  せめて判定をかませてどちらも受け取れるようにすべきかと。

2

コード追記

2021/05/28 01:49

投稿

退会済みユーザー
test CHANGED
@@ -3,3 +3,59 @@
3
3
 
4
4
 
5
5
  > どの部分を使用するかは、テクスチャの左下を原点とするuv座標系で指定します。
6
+
7
+
8
+
9
+ 追記
10
+
11
+
12
+
13
+ 2点指定なのに、暗黙的に「startSize」は左上を選択することになってるのがダサいですね。
14
+
15
+ せめて判定をかませてどちらも受け取れるようにすべきかと。
16
+
17
+ 個人的には、左上の点、幅と高さを指定するほうが矩形選択としては好きです。
18
+
19
+
20
+
21
+ ```cpp
22
+
23
+ //左上
24
+
25
+ rectangleVertex[0].uv[0] = sizeX * startSize.x;
26
+
27
+ rectangleVertex[0].uv[1] = sizeY * endSize.y;
28
+
29
+
30
+
31
+ //左下
32
+
33
+ rectangleVertex[1].uv[0] = sizeX * startSize.x;
34
+
35
+ rectangleVertex[1].uv[1] = sizeY * startSize.y;
36
+
37
+ rectangleVertex[4].uv[0] = sizeX * startSize.x;
38
+
39
+ rectangleVertex[4].uv[1] = sizeY * startSize.y;
40
+
41
+
42
+
43
+ //右上
44
+
45
+ rectangleVertex[2].uv[0] = sizeX * endSize.x;
46
+
47
+ rectangleVertex[2].uv[1] = sizeY * endSize.y;
48
+
49
+ rectangleVertex[3].uv[0] = sizeX * endSize.x;
50
+
51
+ rectangleVertex[3].uv[1] = sizeY * endSize.y;
52
+
53
+
54
+
55
+ //右下
56
+
57
+ rectangleVertex[5].uv[0] = sizeX * endSize.x;
58
+
59
+ rectangleVertex[5].uv[1] = sizeY * startSize.y;
60
+
61
+ ```

1

余計な引用を削除

2021/05/28 01:23

投稿

退会済みユーザー
test CHANGED
@@ -2,4 +2,4 @@
2
2
 
3
3
 
4
4
 
5
- > どの部分を使用するかは、テクスチャの左下を原点とするuv座標系で指定します。今回はテクスチャの全面を使用するので、0 ≦ u ≦ 1, 0 ≦ v ≦ 1 の範囲で指定します。
5
+ > どの部分を使用するかは、テクスチャの左下を原点とするuv座標系で指定します。