質問編集履歴

1

文章を修正

2021/12/22 07:05

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,215 +1,19 @@
1
- 提示コーですがD2,D3とで正射形、透視射形で分けて実装していたのですがスプライトようなドット画を透視射形で描画すると拡大縮小が行われてそのままのドット画ではありません。一方で正射形で描画すれば遠くの物も近くの物も同じ大きさで描画されるので拡大縮小は行われないのでしょうか?自分はドット画を拡大縮小なしでそのまま描画したいです
1
+ ドット画を透視投影で描画すると拡大縮小が行われてそのままのドット画ではありません。一方で正射形で描画すれば遠くの物も近くの物も同じ大きさで描画されるので拡大縮小は行われないのでしょうか?自分はドット画を拡大縮小なしでそのまま描画したいです
2
+
3
+
4
+
5
+ 透視投影でスプライト(平面の2ポリゴン)を置いて試しましたがそのままなのか拡大縮小されているのかわかりません。
6
+
7
+
8
+
9
+
10
+
11
+ ###### 質問内容
12
+
13
+ ドット画を拡大縮小なしで描画するにはどうしたらいいのか知りたい。
2
14
 
3
15
 
4
16
 
5
17
  環境
6
18
 
7
19
  OpenGL
8
-
9
-
10
-
11
-
12
-
13
- ```
14
-
15
- #ifndef TRANSFORM_2D_HPP_
16
-
17
- #define TRANSFORM_2D_HPP_
18
-
19
-
20
-
21
- #include <iostream>
22
-
23
- #include <glm/glm.hpp>
24
-
25
- #include <glm/gtc/quaternion.hpp>
26
-
27
- #include <glm/gtx/quaternion.hpp>
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
- namespace FrameWork
38
-
39
- {
40
-
41
- namespace D2
42
-
43
- {
44
-
45
- class Transform
46
-
47
- {
48
-
49
-
50
-
51
- public:
52
-
53
-
54
-
55
- Transform(); //コンストラクタ
56
-
57
- ~Transform(); //デストラクタ
58
-
59
-
60
-
61
- //設定
62
-
63
- void setPosition(glm::vec3 p); //座標
64
-
65
- void setScale(glm::vec2 s); //スケール
66
-
67
- void setRotate(float r); //回転
68
-
69
-
70
-
71
- //取得
72
-
73
- glm::vec3 getPosition(); //座標
74
-
75
- glm::vec2 getScale(); //スケール
76
-
77
- float getRotate(); //回転
78
-
79
-
80
-
81
- //行列 取得
82
-
83
- glm::mat4 getMatTranslation(); //座標
84
-
85
- glm::mat4 getMatScale(); //スケール
86
-
87
- glm::mat4 getMatRotate(); //回転
88
-
89
-
90
-
91
- private:
92
-
93
-
94
-
95
- glm::vec3 position; //座標
96
-
97
- glm::vec2 scale; //拡大縮小
98
-
99
- float rotate; //回転
100
-
101
-
102
-
103
- //行列
104
-
105
- glm::mat4 matScale; //拡大縮小
106
-
107
- glm::mat4 matRotate; //回転
108
-
109
- glm::mat4 matTranslation; //平行移動
110
-
111
-
112
-
113
- };
114
-
115
- }
116
-
117
-
118
-
119
-
120
-
121
- namespace D3
122
-
123
- {
124
-
125
-
126
-
127
- class Transform
128
-
129
- {
130
-
131
-
132
-
133
- public:
134
-
135
-
136
-
137
- Transform(); //コンストラクタ
138
-
139
- ~Transform(); //デストラクタ
140
-
141
-
142
-
143
- //設定
144
-
145
- void setPosition(glm::vec3 p); //座標
146
-
147
- void setScale(glm::vec3 s); //スケール
148
-
149
- void setRotate(glm::vec3 vec,float r); //回転
150
-
151
- void setRotateMult(glm::vec3 vec,float r); //回転 かけ算
152
-
153
-
154
-
155
- //取得
156
-
157
- glm::vec3 getPosition(); //座標
158
-
159
- glm::vec3 getScale(); //スケール
160
-
161
- glm::vec3 getRotateVector(); //回転方向
162
-
163
- float getRotateAngle(); //回転ラジアン
164
-
165
-
166
-
167
- //行列 取得
168
-
169
- glm::mat4 getMatTranslation(); //座標
170
-
171
- glm::mat4 getMatScale(); //スケール
172
-
173
- glm::mat4 getMatRotate(); //回転
174
-
175
-
176
-
177
- private:
178
-
179
-
180
-
181
- glm::vec3 position; //座標
182
-
183
- glm::vec3 scale; //拡大縮小
184
-
185
- glm::vec3 rotateVector; //回転
186
-
187
- float rotateAngle; //ラジアン
188
-
189
-
190
-
191
- //行列
192
-
193
- glm::mat4 matScale; //拡大縮小
194
-
195
- glm::mat4 matRotate; //回転
196
-
197
- glm::mat4 matTranslation; //平行移動
198
-
199
-
200
-
201
- };
202
-
203
- }
204
-
205
-
206
-
207
-
208
-
209
-
210
-
211
- }
212
-
213
- #endif
214
-
215
- ```