Mercurial > hg > Game > Cerium
annotate Renderer/Engine/ChangeLog @ 1379:13065ad17328 draft
collada moved but only my mac.
author | e095732 <e095732@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 26 Jan 2012 21:56:32 +0900 |
parents | 34944900f266 |
children | acfa426b277e |
rev | line source |
---|---|
1254 | 1 2011-9-7 Shinji Kono <kono@ie.u-ryukyu.ac.jp> |
2 | |
3 allExecute 使わない方の Camera の処理をしないとだめ。 | |
4 | |
5 Camera のbrother ===> sprite | |
6 Camera のchildren ===> sceneGraph | |
7 | |
8 じゃないの? Camera に座標と行列をcopyする必要があると思われる。 | |
9 | |
10 matrix/real_matrix は重複っぽい。そもそも、なんで別なんだ? 普通は同じ値? | |
11 | |
1129 | 12 2011-2-14 Yutaka Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp> |
13 | |
14 CreatePolygonFromScenenGraph を SPEで動くようにTask化。もうできるのはわかっているけど | |
15 今はバスエラーです。polygon.h が持っている matrix, real_matrix, texture_info にアラインメント | |
16 合わせないとダメです。いろいろ書きなおさないとアラインメントかけれない?どーも簡単にはいかない。 | |
17 継承関係あたりちょっと見直しが必要。 | |
18 | |
966 | 19 2010-8-6 Shinji Kono <kono@ie.u-ryukyu.ac.jp> |
20 | |
21 Renderer Engine の task の下に user task を置くのは反則だろ? | |
22 問題は、User program の方で、どうやって、task_init するかだが、 | |
23 PPE側は自分でやって問題ない。SPE側が困る。 | |
24 | |
25 やはり、main memory 上のtask listをSPEが自分で読み出すと言う | |
26 方式が合理的だと思われる。get_segment で良いしね。ただ、可変長 | |
27 にしないとダメだが... 2^n allocator with compaction が必要か? | |
28 | |
29 必ず ppe/spe task があるわけだから、task_list はppe/speで一つ | |
30 でも良い。少なくとも設定は一ヶ所が望ましい。object search path | |
31 があれば良い。 | |
32 | |
33 task_list を main memory に置くのは良いが、spe task のentry point | |
34 が決まらないと言う問題がある。 | |
35 | |
724
6e9e4726113e
Small clean up of Rendering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
624
diff
changeset
|
36 2009-12-19 Shinji Kono <kono@ie.u-ryukyu.ac.jp> |
6e9e4726113e
Small clean up of Rendering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
624
diff
changeset
|
37 |
6e9e4726113e
Small clean up of Rendering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
624
diff
changeset
|
38 SgChange/viewer は大域変数使いすぎ。禁止って言ったのに。 |
1254 | 39 linda api は、federated linda 対応でないものが使われている。 |
40 対応したものは、どこにあるんだろう? | |
724
6e9e4726113e
Small clean up of Rendering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
624
diff
changeset
|
41 |
1254 | 42 他の例題いじるのは、自分の例題を動かしてからにして欲しい。 |
724
6e9e4726113e
Small clean up of Rendering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
624
diff
changeset
|
43 |
1254 | 44 まぁねぇ。Pipeline execution するのに、sgpack とかも Pipeline buffer |
45 にするのは気づかないものなんだろうな... なくても、動かないことは | |
46 ないのか。 | |
724
6e9e4726113e
Small clean up of Rendering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
624
diff
changeset
|
47 |
1254 | 48 viewer.cc の大域変数を落すところから始めるべきか? |
724
6e9e4726113e
Small clean up of Rendering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
624
diff
changeset
|
49 |
624 | 50 2009-11-15 Shinji Kono <kono@ie.u-ryukyu.ac.jp> |
51 | |
724
6e9e4726113e
Small clean up of Rendering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
624
diff
changeset
|
52 DrawSpan は, |
6e9e4726113e
Small clean up of Rendering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
624
diff
changeset
|
53 Start DrawSpan region (allocate Z buffer) |
6e9e4726113e
Small clean up of Rendering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
624
diff
changeset
|
54 DrawSpan / for each SpanPack |
6e9e4726113e
Small clean up of Rendering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
624
diff
changeset
|
55 add_inData |
6e9e4726113e
Small clean up of Rendering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
624
diff
changeset
|
56 End DrawSpan region (Write frame buffer,free Z buffer) |
6e9e4726113e
Small clean up of Rendering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
624
diff
changeset
|
57 add_outData |
6e9e4726113e
Small clean up of Rendering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
624
diff
changeset
|
58 みたいにしたい. |
624 | 59 |
724
6e9e4726113e
Small clean up of Rendering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
624
diff
changeset
|
60 CreateSpan は,SpanPack を入れ換えているようだが, |
6e9e4726113e
Small clean up of Rendering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
624
diff
changeset
|
61 SpanPack は,ランダムに書きだし, |
6e9e4726113e
Small clean up of Rendering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
624
diff
changeset
|
62 PPU 側で,それをsortする. |
6e9e4726113e
Small clean up of Rendering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
624
diff
changeset
|
63 と言う方がよい? ほぼ毎回入れ換えているんじゃないの? |
624 | 64 |
618
58417006268c
worked. Cell fix. (not yet tested)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
539
diff
changeset
|
65 2009-11-14 Shinji Kono <kono@ie.u-ryukyu.ac.jp> |
58417006268c
worked. Cell fix. (not yet tested)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
539
diff
changeset
|
66 |
724
6e9e4726113e
Small clean up of Rendering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
624
diff
changeset
|
67 DrawSpan の dma_write を追放。なんでこんなになっていたかは謎。 |
6e9e4726113e
Small clean up of Rendering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
624
diff
changeset
|
68 これで、renew Task を落とせます。 |
618
58417006268c
worked. Cell fix. (not yet tested)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
539
diff
changeset
|
69 |
539 | 70 2009-08-06 Shinji Kono <kono@ie.u-ryukyu.ac.jp> |
71 | |
724
6e9e4726113e
Small clean up of Rendering Engine
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
624
diff
changeset
|
72 DrawSpan の reboot/ TASK_DRAW_SPAN2 は、使ってないのね。 |
539 | 73 |
283 | 74 2009-03-29 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> |
75 | |
76 * Makefile | |
77 SGlist.{cpp,h} を make clean で消去し、 | |
78 make で自動生成するようにしました。 | |
79 けどなんか他のファイルと同じ書きかたしても | |
80 上手く行かなかった。何か見落としてるかもしれない。誰か直(ry | |
81 | |
82 2009-02-12 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> | |
83 | |
84 * task/CreatePolygonFromSceneGraph.cpp (CreatePolygonFromSceneGraph::run): fix | |
85 下にあわせる様に | |
86 | |
87 * SceneGraph.cpp (SceneGraph::SceneGraph, SceneGraph::init) | |
88 (SceneGraph::finalize_original): fix | |
89 今まで、Polygon が持つ vertex, normal, texture coordinate ってのが | |
90 | |
91 --------------------------------------- | |
92 data = | vertex | normal | texture | sizeof(data) = size*3 | |
93 --------------------------------------- | |
1254 | 94 \ size / \ size / \ size / |
283 | 95 |
96 てな感じで、SceneGraph->data の中に 3 つ入ってたわけです。 | |
97 これだと、アクセスする時にどれがどれかわからんくなるし、 | |
98 ソース読む時に迷う(経験談)ので、data を消して、代わりに | |
99 coord_xyz, normal, coord_tex を作りました。 | |
100 | |
101 * polygon.cpp (Polygon::pickup_coordinate) | |
102 (Polygon::pickup_normal, Polygon::pickup_texture): | |
103 | |
104 2009-02-10 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> | |
105 | |
106 * Makefile.macosx (depend): fix | |
107 depend.inc とかを吐き出す様にしました | |
108 | |
109 * Camera.cpp (Camera::Camera, Camera::updateView) | |
110 (Camera::updatePerspective, Camera::updateScreen) | |
111 (Camera::update): fix | |
112 なんとかカメラできてるっぽいです。 | |
113 Perspective とかも聞いてるし、中心に向かって遠くなってる。 | |
114 あとは行列演算をもうちょいこぎれいにすればいい感じかなー。 | |
115 | |
116 残りは、ユーザ側からの設定。例えば | |
117 1. 車の運転席目線(FPS) | |
118 2. 車の後ろから(TPS) | |
119 3. 車の前から(SPS) | |
120 | |
121 的なのを、ユーザが CameraData みたいな構造体に | |
122 zd とか yd とかを設定して camera->set(data) とかやれば | |
123 反映するみたいな!みたいな! | |
124 | |
125 2009-02-09 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> | |
126 | |
127 * SceneGraphRoot.cpp (SceneGraphRoot::allExecute) | |
128 (SceneGraphRoot): fix | |
129 SceneGraph を root から走査していきながら | |
130 その都度コピーしていき、最終的に全体の新しい SceneGraph ができる。 | |
131 削除されていればコピーしない、っていうのは簡単だけど | |
132 追加された場合、コピー元に追加されるのは困るので | |
133 コピーしたやつに追加って形にしたら今のコードになった。 | |
134 めんどくさいっちゃめんどくさい。もっと綺麗な書き方あるかね | |
135 | |
136 | |
137 2009-02-01 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> | |
138 | |
139 * SceneGraph.cpp (SceneGraph::SceneGraph) | |
140 (SceneGraph::SceneGraph, SceneGraph::SceneGraph) | |
141 (SceneGraph::finalize_original, SceneGraph) | |
142 (SceneGraph::finalize_copy): add, fix | |
143 今のところ、SceneGraph の作られ方は | |
144 | |
145 a1. xml ファイルから生成 (sgid 毎、sg_src[] に格納) | |
146 a2. ID を指定し、sg_src[id] の SceneGraph を複製 | |
147 a3. xml も ID も指定しない、何も表示しない SceneGraph | |
148 | |
149 a1 の時はポリゴンデータ(data[])を生成するわけだけど、 | |
150 a2 でも、オリジナルと同じ data[] を持つ必要は(今は)ない。 | |
151 なので、a2 の場合、data[] は a1 と同じ場所を指せば良い。 | |
152 しかし、今までは、SceneGraph::~SceneGraph では | |
153 どんな SceneGraph でも | |
154 | |
155 delete [] data; | |
156 | |
157 とかやってたので、それならということで | |
158 | |
159 b1. a1 用の、Desturctor で data[] を delete する finalize_original() | |
160 b2. a2,a3 用の、data[] を削除しない finalize_copy() | |
161 | |
162 を用意し、a1,a2,a3 の Consturoctor で、どっちかを設定する。 | |
163 | |
164 2009-01-30 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> | |
165 | |
166 * spe/DrawSpan.cpp (DrawSpan::drawDot1): add | |
167 span->length_x == 1 の処理。 | |
168 | |
169 (DrawSpan::drawDot2): add | |
170 Dot1 の続き。要は Dot1 で load して、Dot2 で wait->書き込みって感じ | |
171 しかし、1ドットだとそこまで待つ必要もないかなって感じなので | |
172 今は Dot 2には何も書いてない。ちゃんとしらべて、必要そうだったら | |
173 ここで書き込みを行う | |
174 | |
175 (DrawSpan::drawLine1): add | |
176 span->length_x > 1 の処理。 | |
177 いくつか Load パターンを考えてる途中 | |
178 | |
179 1. 全部 load | |
180 1. z buf で描きこむと判断したとき、その pixel の texture tile を | |
181 load する。(すでにある、ないに関わらず。ある場合は、実際には | |
182 Load の処理は行われないが) | |
183 2. Line2 で描画する(ここで使う tile はすでに全部読み込まれてるとする | |
184 | |
185 2. 無い物だけload | |
186 1. 書き込むと判断したとき、tile があるかどうかを調べ | |
187 あればそのまま linebuf に、無ければ load を掛けて continue; | |
188 このとき、load した(つまりまだ書き込まれてない) 場所を覚えておく | |
189 2. Line2 で、1. で覚えた場所から再び計算して描画する。 | |
190 tile はすでに全部読み込まれているとする | |
191 | |
192 まだあったけど忘れた。 | |
193 今のところ描画領域が 256x8、もしくは512x8 で、 | |
194 単純に考えて、領域pixel と texture pixel が一緒だと考えると | |
195 一個の Span で最大 64 (512/8) 個の tile があればいいと考えられる。 | |
196 一個の SPE には Tile を 128 個持っておけるし、 | |
197 今は Span を二つ平行して処理しているので、 | |
198 途中で Tile が足りなくなる!ってことはないはず。 | |
199 とまあ、いろいろ考えてたんだけど、何書けばいいのか忘れた。。 | |
200 思い出したらまた書きます。 | |
201 | |
202 2009-01-26 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> | |
203 | |
204 * spe/CreateSpan.cpp (CreateSpan::run): fix | |
205 ポリゴンをx軸に水平に分割し、その二つを計算するってのが | |
206 half_triangelで、上としたで、何故か渡すテクスチャの情報が違う。 | |
207 なんでだろうと思いつつも、今まで特に問題が出なかったから無視してたが、 | |
208 今回、三つのSceneGraph を動かしてる時に問題発生。 | |
209 それぞれ違うテクスチャを貼ってるのに、なぜかそれらのうちの半分が | |
210 別のテクスチャが貼られていた。簡単に言うと、A,B,C の SG があった。 | |
211 | |
212 A: 正常 | |
213 B: 右上だけ A のテクスチャ | |
214 C: 右上だけ A のテクスチャ | |
215 | |
216 といった具合。わけがわからなかったんだが、 | |
217 half_triangle に渡すやつの所為だと気づきました | |
218 なんでここだけ pp->tri[0].tex_info.addr とか渡してんのか未だに謎。 | |
219 単なる書き間違いか直し間違いか。微妙なところ。 | |
220 これ書いた後輩はもう居ない | |
221 | |
222 | |
223 * SceneGraphIterator.cpp (SceneGraphIterator::hasNext) | |
224 (SceneGraphIterator::next): fix | |
225 検索する引数を int id に変更。 | |
226 | |
227 * SceneGraph.h (class SceneGraph): add variable | |
228 int flag_drawbale : この SceneGraph は描画する物かどうか | |
229 int sgid : SceneGraph の ID 。ID は SGList.h にあるものを使う | |
230 | |
231 * SceneGraphIterator.cpp : add file | |
232 SceneGraph を走査する用。 | |
233 基本、Java の Iterator を参考にしてます。 | |
234 追加機能としては | |
235 | |
236 - hasNext(const char* name); | |
237 名前が name の SceneGraph があるかどうか | |
238 | |
239 - next(const char* name); | |
240 名前が name の SceneGraph まで進ませる | |
241 | |
242 * SceneGraphIterator.cpp : TODO | |
243 hasNext とかは名前じゃなくて ID が良いかなーとも思うけどね。 | |
244 てかその方がいいな。あとで直します | |
245 | |
246 * ieshoot.cpp (ieboss_move): add | |
247 (ieboss_collision): add | |
248 BOSSの動きを追加。 | |
249 IETAMA が数回衝突したら BOSS を消すって処理。 | |
250 | |
251 * SceneGraphIterator.cpp (SceneGraphIterator::next): fix | |
252 break してなかった。そりゃ取れないわ | |
253 | |
254 * SceneGraph.cpp (SceneGraph::realRemoveFromTree): fix | |
255 | |
256 < p1 = p1->next; | |
257 < p = p->next; | |
258 ===== | |
259 > p1 = p1->brother; | |
260 > p = p->brother; | |
261 | |
262 | |
263 * viewer.cpp (Viewer::run_draw): fix | |
264 Spanの無い部分を塗りつぶす処理はタスクを走らせず、 | |
265 そのまま memset とかの方が早い。 | |
266 まとめてするタスクを立ち上げるってのもいいかもしれない。 | |
267 あと、memsetで指定する値が、0xFF と 0x00 とで速度が違う。 | |
268 universe だと、 | |
269 | |
270 0xFF 24fps | |
271 0x00 30fps | |
272 | |
273 なんだろう。0x00 だと、ただのクリアになるから速いってことかな。 | |
274 | |
275 * Camera.h (class Camera): add | |
276 とりあえず Camera を作って、これを SceneGraph の Top にした。 | |
277 | |
278 * SceneGraph.cpp (SceneGraph::realRemoveFromTree): add | |
279 realRemove() の Tree構造用。削除後の tree top を返す様にしている。 | |
280 まあ top が消えなければ返す必要も無いし、top が消えるってことは | |
281 SceneGraph そのものが消えるってことでそうは無い・・はずだけどね。 | |
282 (SceneGraph::realRemoveFromList): add | |
283 realRemove() の list用。削除後の list top を返す様にしている。 | |
284 (SceneGraph::realRemoveFromTree): fix | |
285 < p->next = p1->next; | |
286 === | |
287 > p->brother = p1->brother; | |
288 | |
289 2009-01-25 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> | |
290 | |
291 * add (tools/create_sglist): new | |
292 必要な SceneGraph xml file から SceneGraph を抽出し、 | |
293 名前と対応する ID を SGList.h に出力する。 | |
294 また、名前から ID を求める sglist_table を SGList.cpp に出力する。 | |
295 | |
296 * SceneGraph.cpp (SceneGraph::remove): add | |
297 User API。ここで削除するのではなく、まずはフラグを立てるだけ | |
298 ここですぐに消すと、allExecute() の走査で何気に困る | |
299 | |
300 (SceneGraph::isRemoved): add | |
301 この SceneGraph 削除フラグが立っているかどうか | |
302 | |
303 (SceneGraph::realRemove): TODO | |
304 子を持つ SceneGraph が消された場合、 | |
305 その子孫を全て削除するかどうか。まあ削除するのかな。 | |
306 | |
307 (SceneGraph::realRemove): add | |
308 Cerium System で呼ばれる。 | |
309 remove flag の立った SceneGraph を削除する。 | |
310 parentやbrother、next は繋ぎ直す。 | |
311 | |
312 * SceneGraphRoot.cpp (SceneGraphRoot::addNext): add | |
313 sg_available_list に追加していく | |
314 木の操作が要らないアクセスの際にはこっちの方がいい。 | |
315 | |
316 (SceneGraphRoot::setSceneData): add | |
317 Cerium に SceneGraph の tree を渡す。Cerium はこの tree を辿って | |
318 処理を行う | |
319 | |
320 (SceneGraphRoot::createFromXMLfile): add | |
321 xml file を指定して、そこから SceneGraph を生成し、 | |
322 sg_src に格納する。ユーザはこの SceneGraph を直接は扱えない。 | |
323 以下に示す createSceneGraph の、読み込み元データとして保存しておく。 | |
324 | |
325 (SceneGraphRoot::createSceneGraph): add | |
326 オリジナルの SceneGraph を clone してユーザに返す。 | |
327 この SceneGraph をユーザが操作する。 | |
328 | |
329 * SceneGraphRoot.h (class SceneGraphRoot): new variables | |
330 sg_src, sg_exec_list, sg_draw_list, sg_available_list | |
331 | |
332 * addfile (SceneGraphRoot.cpp) | |
333 SceneGraph を管理するクラス、ってところか。 | |
334 Root ってのは SceneGraph という名前からすると | |
335 一番親と思われそうで微妙です。変えるかも。 | |
336 | |
337 2009-01-12 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> | |
338 | |
339 * Joystick.cpp: TODO | |
340 使用している Joystick が | |
341 | |
342 1. PS3 コントローラ | |
343 2. PS2 コントローラにUSB変換をかましたやつ | |
344 | |
345 によってボタンの番号配置が違うので | |
346 そこを自動的に取得して割り振りたい | |
347 | |
348 SDL_JoystickName() で名前取れるんだけど | |
349 全部共通なのかなー。「PS3って文字列があるか否か」でわけてもいいけど | |
350 | |
351 * Joystick.cpp: fix | |
352 コントローラボタンの番号を PS3 コントローラに合わせました。 | |
353 | |
354 - 参考 | |
355 PS3 Linux SDLでプログラミング -コントローラを使う- | |
356 http://yun.cup.com/ps3sdl007.html | |
357 | |
358 アナログスティックの方はまだです | |
359 | |
360 2009-01-08 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> | |
361 | |
362 * spe/DrawSpanRenew.cpp (DrawSpanRenew::run): fix | |
363 next_spack を free() していたが、do-while の最初で | |
364 next_spack = NULL とかやっている。 | |
365 DrawSpan だと、free するのは free_spack ってやつなので | |
366 問題なかったが、なぜここは free(next_spack) とかやってるのか。 | |
367 というわけで、next_spack,spack 両方用の | |
368 free_spack1, free_spack2 を生成して、これを free させることに。 | |
369 これで、ようやくまともに動くようになった。けど微妙です。 | |
370 遅いですね。 | |
371 | |
372 * addFile : DrawSpanRenew.cpp | |
373 DrawSpan の再起動 ver。 | |
374 | |
375 2008-12-22 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> | |
376 | |
377 * fix | |
378 charles を Fedora 10 に上げて、コンパイラが新しくなったせいか、 | |
379 以下のような warning が出始めた | |
380 | |
381 warning: deprecated conversion from string constant to 'char *' | |
382 | |
383 まあよくわからんが、例えば | |
384 | |
385 char *str = "hoge"; | |
386 | |
387 みたいな所だとこの warning が出る。これを | |
388 | |
389 const char *str = "hoge"; | |
390 | |
391 にすると消えた。 | |
392 以後こういう形に統一しろよ的なやつなのかな。 | |
393 | |
394 2008-12-19 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> | |
395 | |
396 * viewer.cpp (Viewer::run_draw): fix | |
397 startx, endx に対して、start_y, end_y って名前は統一されてなくて | |
398 わかりづらいので、starty, endy に変更 | |
399 | |
400 * main.cpp (init): fix | |
401 bpp (BitsPerPixel) の値がデフォルトで 0 になっていた。 | |
402 今のレンダリング方式では 32 がデフォルトなので、間違ってた。 | |
403 今まで気づかなかったのは | |
404 | |
405 1. SDL_SetVideoMode に bpp = 0 で渡される | |
406 2. SDL が開発・実行環境に合わせて bpp を設定 | |
407 3. 今までそれが 32 になってた | |
408 | |
409 しかし、ゲーム班の環境では bpp = 16 になってしまったため、 | |
410 その次の bitmap の allocate の時に | |
411 screen->pitch*height = 16*width*height となり、 | |
412 DrawSpan では 32 のつもりで書き込んでいたため領域外への | |
413 メモリ書き込み->エラー | |
414 | |
415 ゲーム班ありがとう | |
416 | |
417 2008-12-16 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> | |
418 | |
419 * SceneGraph.cpp (makeTapestry): add | |
420 SceneGraph::get_data にあったけど、ごちゃごちゃしてたので | |
421 関数として生成 | |
422 | |
423 * viewer.cpp (Viewer::run_init, Viewer::run_draw): fix | |
424 * spe/DrawSpan.cpp (DrawSpan::zRow_init): delete | |
425 | |
426 Z Buffering に使う zRow は DrawSpan で毎回生成、初期化するのではなく、 | |
427 PPE で生成、初期化を行っておき、DrawSpan に add_inData で | |
428 DMA で渡すという方法に変更。速度的にはほんのちょっとしか(ry | |
429 | |
430 * spe/CreateSpan.cpp (CreateSpan::half_triangle): fix | |
431 getScale に渡す tex_width,tex_height を修正。 | |
432 比較にそのまま tex_width, tex_height を使うと、 | |
433 Span が持つテクスチャが全体の一部分だったとしても | |
434 比較結果で縮小が行われてしまうため。 | |
435 | |
436 - 例 | |
437 span->length_x = 32; | |
438 tex_width = 128; | |
439 tex_x_len = (span->tex_x2 - span->tex_x1) = (0.5 - 0.3) = 0.2; | |
440 | |
441 今までの処理だと、span->length_x < tex_width の結果により | |
442 縮小されたテクスチャを使うことになる。 | |
443 しかし、実際に Span が使う Texture の長さは | |
444 | |
445 tex_width*tex_x_len = 24 | |
446 | |
447 なので、縮小を行う必要は無い | |
448 | |
449 | |
450 2008-12-12 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> | |
451 | |
452 * SceneGraph.cpp (SceneGraph::get_data): Todo | |
453 テクスチャの縦横が 8 の倍数でなければ弾く処理を入れる。 | |
454 | |
455 * spe/DrawSpan.cpp (DrawSpan::run): Todo | |
456 テクスチャの座標計算と、そこから取得できる Tile の DMA を | |
457 一スレッドで処理しているのでそれを分けないといけない | |
458 | |
459 * spe/CreateSpan.cpp (getTapestry): Add | |
460 (getScale): Add | |
461 | |
462 * memo: 雑記 | |
463 ようやくこいつに ChangeLog を加えました。 | |
464 なんか emacs で「C-x 4 a」とかすると、ChangeLog の entry が | |
465 加えれられるんだけど、上の階層のを探しにいくので、TaskManager/ のに | |
466 加えようとしてたわけさ。まあそういう仕様なんだけど。 | |
467 で、だからといって不可能ってわけじゃないから書けばよかったんだが。 | |
468 | |
469 要するに、これからはちゃんと書いていこうと思います。 |