トップページgamedev
1001コメント321KB

C/C++ゲーム製作総合スレッド Part6

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名前は開発中のものです。2014/07/08(火) 19:30:19.51ID:J+zVqUil
ゲーム製作におけるC/C++全般に関するスレです。

元スレ
DXライブラリ 総合スレッド その17
http://toro.2ch.net/test/read.cgi/gamedev/1383795645/

前スレ
C/C++ゲーム製作総合スレッド Part1
http://toro.2ch.net/test/read.cgi/gamedev/1337516528/
C/C++ゲーム製作総合スレッド Part2
http://toro.2ch.net/test/read.cgi/gamedev/1351015269/
C/C++ゲーム製作総合スレッド Part3
http://toro.2ch.net/test/read.cgi/gamedev/1357899040/
C/C++ゲーム製作総合スレッド Part4
http://toro.2ch.net/test/read.cgi/gamedev/1376262450/
C/C++ゲーム製作総合スレッド Part5
http://peace.2ch.net/test/read.cgi/gamedev/1389798031/
0898名前は開発中のものです。2014/12/21(日) 12:18:34.78ID:cF9cgol+
なぜそこまでGCを嫌う?
最近のVMのGCはかなりうまくやってくれていると思うけど

>>897
(゚Д゚)ハァ?.NETはGCするだろ
0899名前は開発中のものです。2014/12/21(日) 12:20:14.63ID:xV1M/iBe
>>896
swift
ARC有効にしたObjective-C

参照カウントだけだと弱参照するところをどうやっても意識する事になるから流行らないんだろうよ。中途半端だから。
0900名前は開発中のものです。2014/12/21(日) 12:57:51.36ID:IwHuX+Tw
>>899
swiftは今っぽい構文なだけで、その辺りは15年前レベルだよな。

参照カウント + 循環参照用のGCはスクリプト言語ならあるな。 PythonとかSquirrelとか。
クロージャをサポートすると、循環を避けるのは難しい。
0901名前は開発中のものです。2014/12/21(日) 14:04:19.84ID:tJq5gWK6
http://seesaawiki.jp/w/author_nari/d/GC
以前どっかで教えてもらったGCの各アルゴリズム(とそれを実装してる主な言語)をまとめてるサイト
結構勉強になった

見ていて、C++上で既存のデータ構造との親和性を保ちながら実装するのは無理そうだなーとも感じた
0902名前は開発中のものです。2014/12/21(日) 14:05:13.03ID:tJq5gWK6
あ、ちょっと訂正
× 実装するのは無理そうだなーとも感じた
○ 実装するのは俺には無理そうだなーとも感じた
0903名前は開発中のものです。2014/12/21(日) 17:21:30.42ID:3dyKCo+m
ガベコレって使いづらい印象付きすぎちゃったもん
0904名前は開発中のものです。2014/12/23(火) 01:05:19.57ID:UuPEmr1n
バカにはそういう印象付いちゃったよね^^;
しかもバカって一度持った印象を絶対に改めないから…
0905名前は開発中のものです。2014/12/23(火) 20:19:18.60ID:y5yR41zs
デストラクタで十分
0906名前は開発中のものです。2014/12/23(火) 22:15:26.87ID:I+Smn/JJ
デストラクタ(ファイナライザ)はリソースを解放するもので
いつデストラクタを呼ぶかを自動化するのがGCなんだよなぁ
0907名前は開発中のものです。2014/12/23(火) 22:25:27.90ID:IjLiTo3j
shared_ptrが標準化され、RAIIが一般的になった昨今、
ガベコレの意義が分からない。
0908名前は開発中のものです。2014/12/23(火) 23:15:42.17ID:PQqq+vmb
スレッド使ってたら生のデストラクタは使えないし、
sharedは循環参照に気を使わないといけないのがなぁ
0909名前は開発中のものです。2014/12/24(水) 04:46:42.87ID:INaba3Bc
生のデストラクタってなんぞ…
0910名前は開発中のものです。2014/12/24(水) 09:59:07.80ID:+KNBOnw3
おそらく「スタック上には確保できない」って言いたいんだろう。
スコープを抜けた後も別のスレッドで使われるから。
0911名前は開発中のものです。2014/12/24(水) 19:08:44.28ID:JqKQyI9r
GC「後で掃除しときますんで」
ぼく「これもやっといて」
GC「あ、すいません、今掃除してるんで」
ぼく「今すぐ処理してほしいんだけど」
GC「あと20分ぐらい待ってください」
ぼく「は?処理できない・・・」

こんな印象
0912名前は開発中のものです。2014/12/24(水) 23:09:56.90ID:mC2vVuxE
世代別GCなめんな
0913名前は開発中のものです。2014/12/25(木) 00:07:59.44ID:GYUw7kdq
>>910
RAIIと関係なくね?流れ的にRAIIでは対応出来ないケースを挙げたように読めるんだけど。
0914名前は開発中のものです。2014/12/25(木) 00:11:13.27ID:MJlq1Aj4
「生のデストラクタ」なんて謎の用語を使うようなやつが、「流れ」を読めていると思うのか?
09159082014/12/25(木) 00:51:14.98ID:0+lNtng/
>>910
ちょっと違う
スコープを抜けたときに普通にデストラクタが呼ばれるものを「生」と、
スマートポインタ等で使う工夫したデストラクタと区別するために言ってみた

>>914
生のポインタとスマポがわかるなら適当に空気嫁や
0916名前は開発中のものです。2014/12/25(木) 01:24:40.70ID:C10OwjTO
いや、本人以外理解できてないって事は、言葉選びを間違ってるって事なんだから、読み手に責任転嫁すんなって。
0917名前は開発中のものです。2014/12/25(木) 01:26:24.11ID:0+lNtng/
正直スマンかった
0918名前は開発中のものです。2014/12/25(木) 02:39:55.48ID:+bLp0IG7
結局ちょっと手を加えるだけで簡単にメモリ解放ができるデストラクタ便利
0919名前は開発中のものです。2014/12/25(木) 06:37:13.40ID:GYUw7kdq
>>915
その説明でも意味わかんねえんだけど?
スマートポインタ等で使う工夫したデストラクタ?
スマートポインタのデストラクタの事?
それとスレッドがどう関係してくるんだ?
0920名前は開発中のものです。2014/12/25(木) 07:27:27.19ID:lfp6OMz3
>>911
GCって掃除して!って言えば掃除してくれるよ?
問題は、掃除してくれと言える人が少ない事とか、
捨てるべきでないものまで捨てちゃう事かと

ヒープ上の参照は無視して掃除するんだよなぁ……
0921名前は開発中のものです。2014/12/25(木) 08:08:39.90ID:MJlq1Aj4
>>920
質の悪いGCを使っているか、単に使い方をミスってるだろ
0922名前は開発中のものです。2014/12/25(木) 08:15:02.30ID:MJlq1Aj4
>>915
ちょっと違う じゃねーよ
確保する場所がスタック上かヒープ上かの違いだけじゃねーか
0923名前は開発中のものです。2014/12/25(木) 08:54:43.93ID:wubB5pdO
>>921
GCって最初は親切だけど、結局面倒臭いものなんだね
メモリ管理をする手間は変わらないじゃん
0924名前は開発中のものです。2014/12/25(木) 10:29:27.96ID:Y3U3uktg
GCで最も困るのはメモリ解放時のStop the Worldだが
v8は少ないと思う
0925名前は開発中のものです。2014/12/25(木) 12:54:07.39ID:MhE4palG
どっちがいいなんてアプリケーションによるんじゃね?
0926名前は開発中のものです。2014/12/25(木) 14:31:05.41ID:+bLp0IG7
速度重視のゲーム開発でGCなんて重い物動かす余裕はないね
結構色々なゲームで使うA*だけでもそれなりに食うってのに
0927名前は開発中のものです。2014/12/25(木) 15:29:01.01ID:ZzsGRtB9
使うタイミングと量を間違えなければ、特に問題にならない気がするけどなあ
0928名前は開発中のものです。2014/12/25(木) 16:21:19.48ID:qeWu8Kkf
メディエイターパターンでshared_ptr使った場合ってメモリリークするの?
0929名前は開発中のものです。2014/12/25(木) 21:11:54.62ID:ICmaagKn
>>928
ん、学校の宿題?違うなら以下の逆質問に答えてみてくれないか?

@ shared_ptrの典型的実装は何
A @でメモリリークする場合の典型的原因は何
B mediatorの目的は何
C BはAを誘発する方向に作用するか

mediator使ってAを招いてメモリリークさせる男の人ってどう思う?
0930名前は開発中のものです。2014/12/25(木) 21:30:48.42ID:0+lNtng/
>>922
違うわ
普通はやらんがスタック上でも別にスレッドで使えるわ
確保する場所の話をしてるんじゃねぇ
デストラクタを呼んだ時の振舞の違いを言っとるんだ
0931名前は開発中のものです。2014/12/25(木) 21:47:40.02ID:MJlq1Aj4
>>930
「デストラクタが呼ばれ方」の話だったはずが、いつの間にか「呼んだ時の振舞」に摩り替わっている。
具体例まで挙げないと、君の話は他人には理解できないぞ。
0932名前は開発中のものです。2014/12/25(木) 22:18:25.00ID:rdtwM2Em
そして呼んだ時の振る舞いって話だったとしてもイミフメー
そもそも配置newしないかぎり自分でデストラクタを呼ばないし。どんどん謎な方向へ。
0933名前は開発中のものです。2014/12/25(木) 22:24:10.39ID:0+lNtng/
生のデストラクタを呼ぶってのは俺の中じゃ、単にdelete xのこと
スレッド使ってたら↑みたいなのは管理が面倒なので使えないっしょ。それだけの話

で、参照カウンタを使ってデストラクタ呼ぶか、マーク&スイープみたいな仕組みでデストラクタを呼ぶか
その振る舞いが違うけど、俺は循環参照に気を使って設計しないといけないのは、やだなぁと言っただけ

そもそも深い話でも続けるような内容でも何でもないだが
0934名前は開発中のものです。2014/12/25(木) 22:27:00.95ID:0+lNtng/
ちなみに>>908>>905宛て
0935名前は開発中のものです。2014/12/26(金) 11:43:36.55ID:IXxiiBMK
よくわかんないけど「手動でデストラクタを呼ぶ」じゃダメだったん?
0936名前は開発中のものです。2014/12/26(金) 16:51:22.54ID:xlNeQ6wG
自動化の権化プログラムを扱う人にとって自動化はロマン
特に多くの人がつまづく面倒くさい処理を自動でやってくれるって素敵やん?
解放処理を描かずに済む分コードも減るし、初心者やうっかりさんにやさしいし
世の中にはそういうできる限り完全自動にこだわる人もいるのです

細かい個別の事案にまで高速に対処できる高い能力を持ったオートデストラクタなんて、
それこそマイクロソフト並の巨大企業が本腰入れてデータ集めないと完成まで何年かかるか分からないレベル
消すには消せるが処理速度に影響を与えて邪魔で使えなかったりすればゴミだし
0937名前は開発中のものです。2014/12/26(金) 18:51:58.22ID:9MuNlFH5
演算能力が頭打ちになりそうな昨今、プログラマが殴られるのが規定路線。
自分で何とかしろ、ってこと。
RAIIで十分じゃない。
0938名前は開発中のものです。2014/12/28(日) 12:00:32.40ID:DVHfXhJL
クラスのポインタ変数をdeleteした後、
そのポインタ変数にNULLを入れて他の処理でNULLチェックをしてぬるぽ回避してるんですが、
逆に言えばdeleteした後NULLを入れてないとぬるぽ回避できないということで、
一般的に職業プログラマではどういうふうにdeleteした変数を識別してるんでしょうか?
0939名前は開発中のものです。2014/12/28(日) 12:24:23.36ID:5FK2L+6G
生ポインタよりもスマートポインタを使うのが一般的じゃねーの
0940名前は開発中のものです。2014/12/28(日) 13:58:25.18ID:dAYPhj1N
生ポインタの場合
#define SAFE_RELEASE(p) { delete p; p = NULL; }
みたいなマクロ使ってるのを見たことある

俺の趣味プログラミングだとshared_ptrやunique_ptr使ってる
boolへの型変換が定義されてるから普通のポインタみたいに
 if (p) { /* スマートポインタが有効だった時の処理 */ }
とかできるし
0941名前は開発中のものです。2014/12/28(日) 14:54:46.81ID:DVHfXhJL
みんなスマポなんですか
まぁ生ポインタと同じように扱えるならそっちのほうがいい感じですか
代入で参照カウントが増えるのはオペレーターとかいうやつですか
0942名前は開発中のものです。2014/12/28(日) 18:56:20.33ID:uPxHRIHV
俺はあんまりスマポは使わないな
ちょっと作ったらテストしてリークしてたらメッセージでるし、
deleteのタイミングが難しい場合ぐらいしかスマポ使わないよ。
ポインタ変数なんか、ほとんどの場合どっかのクラスのメンバーに
なってるからデストラクタでdeleteするようにしてるし
0943名前は開発中のものです。2014/12/28(日) 20:49:21.58ID:KLVWt4ts
マウスカーソルを対象の位置に置いてマウスホイールで対象にズームするような機能をつけたいのですが
どのように実装すれば良いでしょうか
Siv3Dを使っています
0944名前は開発中のものです。2014/12/28(日) 20:55:05.01ID:ToxqMv2l
素朴な疑問なんだけど、ワープロやグラフィックソフトのオブジェクトと違って
ゲーム中に出現するキャラクタの数は大体決め打ちできるんじゃないの。

Cの作法に則って毎回newして確保するんじゃなくて、例えば1オブジェクト最大256バイト、
80体まで出現するならchar slot[256*80]のような形で生メモリ領域をあらかじめ確保しておいて、
ふだんはp = (Actor*)&slot[256*n]; if (p->Exists) { p->Act(); }でいい気がするんだけど。

もちろんActorは基底クラスで、必要でない時はp->Exists = falseにする。
作成時はnewでなくスタック上でコンストラクタ呼び出して、領域に内容丸ごとコピー。

もしかしたら全然違う用途の話かも知れないけど。
0945名前は開発中のものです。2014/12/28(日) 20:57:03.11ID:R8bFfUbq
FlyWeightパターンとかもある
0946名前は開発中のものです。2014/12/28(日) 21:15:10.93ID:vMYsGefx
>>944
動的メモリ確保はパフォーマンスへの影響が大きいので、
可能な限りは最大出現数分の配列を確保しておく。
0947名前は開発中のものです。2014/12/28(日) 22:21:01.45ID:D5X5qYnm
むしろそんなに重要な物なら絶対に常時必要分確保しないといかんと思うけど
他のジャンルならともかく、敵が出るたびになんだかカクつくSTGなんか嫌だぞ
0948名前は開発中のものです。2014/12/29(月) 00:30:37.06ID:gxX17JP7
逆に、例えば「格闘ゲームにおけるキャラクタ選択画面」なんかは
その画面にいる間オブジェクトは一定だろうから >>942 方式で十分だと思う。

そう考えるとゲームの場合、シミュレーションとか特殊なルールでオブジェクト数に
上限を設けたくないとかでなければポインタ制御は簡素に纏める方向でいいと思うんだわ。
0949名前は開発中のものです。2014/12/29(月) 00:45:24.09ID:Ue1eh9PX
まぁ、無理にスマポ使う必要はないと思うけど、
スマポを知って感動して以降、newするものやopen/close系のものは余程でない限りはRAIIで書くようにしてたら、
deleteを書くことが(ほぼ)なくなった。
当然、メモリリークもゼロ。

RAIIを知った前後でプログラムの規模・品質が雲泥の差になったわ。
0950名前は開発中のものです。2014/12/29(月) 01:07:57.04ID:0UxFRGu4
今は、boostにスマポも入っているだろ
0951名前は開発中のものです。2014/12/29(月) 01:44:11.15ID:32D0f9iV
memoryとの違いがわからん
0952名前は開発中のものです。2014/12/29(月) 07:13:22.67ID:aw7mXH6p
今最新のVSに入ってるC++も当然11だよな?スマポ余裕で使えるじゃん boost不要
0953名前は開発中のものです。2014/12/29(月) 11:06:00.25ID:UPrXKgd4
リークするのはてめえの脳みそだけにしておけ
0954名前は開発中のものです。2014/12/29(月) 18:43:53.95ID:aw7mXH6p
うん?現行最新のVSなら3種類の型が使えるだろ?実質2種類だけど
VS以外を使っていたりとかVS標準スマポの仕組みや性能が気に入らないってのは知らない

っつーかな、書き落としはリークじゃなくね
0955名前は開発中のものです。2014/12/30(火) 03:36:36.79ID:vvze8R+p
データの圧縮や解凍ってどうやってる?
簡単な圧縮かけた方がファイルからデータに展開するのも早いし、
(ファイルの読み書きの速度と展開速度を天秤にかけた)
解析する人にとっても多少は面倒になるかな?と思って
GPLとかに感染しないのがあると良いな

やっぱ、自力でやるしか無い?
0956名前は開発中のものです。2014/12/30(火) 03:46:28.22ID:W5CPlMBg
>>955
zlib
0957名前は開発中のものです。2014/12/30(火) 04:01:26.42ID:bdHUCtIv
バイナリ全部繋げてcueファイルにインデックスいれときゃいんじゃね
0958名前は開発中のものです。2014/12/30(火) 08:13:45.13ID:swhFWkgZ
今使うならLZ4かな
0959名前は開発中のものです。2014/12/30(火) 09:05:37.93ID:6MynlDel
色々な言語のライブラリあるしBSDだし良さそうやね
圧縮率あって高速ってのは魅力的だわ
0960名前は開発中のものです。2014/12/30(火) 09:25:49.71ID:HpQ+h6E5
圧縮済みの画像や音声なら無圧縮形式のほうが良いかもね。
mmapして切り出せばメモリ確保も要らない。
0961名前は開発中のものです。2014/12/30(火) 18:48:29.71ID:UWJ4OXBN
mmapのほうがreadより速いという迷信について - kazuhoのメモ置き場
http://d.hatena.ne.jp/kazuhooku/touch/20131010/1381403041
0962名前は開発中のものです。2014/12/30(火) 23:03:50.59ID:HpQ+h6E5
誰もCPUキャッシュやディスク先読みのレベルでのmmapの速度の話なんかしてねーよ
0963名前は開発中のものです。2014/12/31(水) 10:36:13.73ID:rJyBxJIf
メモリ節約って何だよ
ファイルの内容なんてデコードしたらすぐ捨てるだろ

そんな回りくどいことしないで普通に読み込めばいい

サーバーにおいて複数のプロセスから同じファイルの内容を読み込む時なんかは
読み込み用のバッファが要らなくなるからメモリ節約に繋がるらしいが
殆どのケースで速度が遅くなるだけだから使う理由が無い
0964名前は開発中のものです。2015/01/01(木) 16:48:21.14ID:jkRIISMU
class TestClass {
private:
// 型 m_funcArray;
void FuncA();
void FuncB();
void FuncC();
public:
void CreateFuncArray() {
m_funcArray[0] = &FuncA;
m_funcArray[1] = &FuncB;
m_funcArray[2] = &FuncC;
}
void ExecuteFuncArray() {
for (int i = 0; i < m_funcArray.Length; i++) {
m_funcArray[i]();
}
}
}

こんな感じでクラスにメンバ関数ポインタの配列を作って実行したいのですが
メンバ関数ポインタの配列の型をどう宣言すれば良いでしょうか
0965名前は開発中のものです。2015/01/01(木) 18:08:05.65ID:cWuPuXeC
言語仕様的にどこまで正しいかわからんけど

class CTestClass {
private:
void (CTestClass::*m_pFunc[3]) ();

void FuncA();
void FuncB();
void FuncC();

void SetTable() {
m_pFunc[0] = &CTestClass::FuncA;
m_pFunc[1] = &CTestClass::FuncB;
m_pFunc[2] = &CTestClass::FuncC;
};

};
0966名前は開発中のものです。2015/01/01(木) 18:10:47.53ID:cWuPuXeC
呼び出しはこうな
void Exec( int i ) {
(this->*(m_pFunc[i])) ();
}
0967名前は開発中のものです。2015/01/01(木) 18:29:15.58ID:jkRIISMU
>>965-966
ありがとうございます
なるほど*はその位置につけるんですか
0968名前は開発中のものです。2015/01/02(金) 17:10:32.59ID:dGIIjPDH
enum class Signals {
RED,
GREEN,
BLUE
}

void func(Signals signal) {
if (signal == Signals::RED) {
// 処理
}
}

enum classを使って引数を識別したかったのですが次のようなエラーが出ました
error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
どうすればいいのでしょうか
0969名前は開発中のものです。2015/01/02(金) 17:16:07.35ID:nBM88kHl
void main を int main に変更
0970名前は開発中のものです。2015/01/02(金) 17:47:26.94ID:dGIIjPDH
関係ない所のエラーでしたすみません
0971名前は開発中のものです。2015/01/04(日) 15:42:29.73ID:8cIsCjgM
ifstream::read(buff,filesize)で読み込んだ文字列を表示すると
末尾にEOFらしき文字化けした文字があってXML等のパースに失敗するんですが
filesizeを-1してreadしたり、読み込んだchar*の末尾のEOFと思われる要素に\0をいれて回避しているんですが
根本的な解決方法がわかりません

どうしたらいいですか
0972名前は開発中のものです。2015/01/04(日) 16:06:48.29ID:Ep14vw0N
>>971
filesize 数ぶんの文字が無かったんだろう。
入力バッファ末尾の未初期化の領域が見えているだけ。
改行コードの変換 \r\n --> \n とかでちょうど1文字減ってるんじゃないの?

バイナリモードで読めば、たぶんファイルサイズと文字数が一致するはず。
その後の処理が \r\n に対応してないといけないけど。
テキストモードで読みたいなら、istream_iterator を使うのが定番かな。
0973名前は開発中のものです。2015/01/05(月) 13:29:36.70ID:61MXvLfY
終端文字の文字数って2文字じゃなかったっけ?
0974名前は開発中のものです。2015/01/05(月) 13:52:13.89ID:+omNtWXl
buff全体を0クリアしてreadすればいいだけ
他の方法はgetで一文字づつ読みつつeofチェック
ファイルが全てメモリに置いても問題ないサイズならstd::stringとoperator>>で全部一度に取得
好きなの選べ
0975名前は開発中のものです。2015/01/06(火) 11:25:41.33ID:BevxLkoj
http://murakan.cocolog-nifty.com/blog/2009/12/cstreameof-7401.html
なんかeofまで読み込むのはifstreamの仕様らしいですね
0976名前は開発中のものです。2015/01/06(火) 18:08:33.09ID:+D28bBOU
そりゃeofまで読まないとどこが終端なのか分からないし…
0977名前は開発中のものです。2015/01/07(水) 13:02:30.14ID:NiXFoaGk
横からすいません、質問です。
http://www1.axfc.net/u/3387806
ソフトウェア3DCGライブラリを作っているのですが、
80万ポリゴン/秒(C2D E8400 OC 3.6GHz上&フラットシェーディング&テクスチャマッピングなし)
しか出ません。ソフトウェアレンダリングってこんなものなんですか?
0978名前は開発中のものです。2015/01/07(水) 18:26:06.67ID:PQ5kLSMd
何で今時ソフトウェアレンダラー
0979名前は開発中のものです。2015/01/07(水) 18:57:47.13ID:vA0pKoe4
>>977
DirectXのリファレンスドライバでメッシュを表示する適当なもの作ってそれと比較してみたら?
0980名前は開発中のものです。2015/01/07(水) 20:29:35.89ID:PQ5kLSMd
ソフトウェアレンダラーにしたってMesaとかIrrlichtのソフトウェアレンダラーとかが既にあるのに
車輪の再開発じゃない?

http://en.wikipedia.org/wiki/Mesa_(computer_graphics)#Software_renderer
http://irrlicht.sourceforge.net/features/
0981名前は開発中のものです。2015/01/07(水) 22:42:06.11ID:Wqt7oMn8
GT3D_drawpoly_fill_sub()を流し読みしたけど、多角形描画は普通っぽかったし
このプログラム自体は特に速度をどうこうしているものではないようですね。
ちょっと見ただけだけどソースは一部ですよね
SSEとかも使ってないし、マルチスレッドでもないですよね
描画対象はメモリ? に一旦描画している感じなのかな
描画範囲を分割してマルチスレッドにしてはどうですか?
0982名前は開発中のものです。2015/01/08(木) 20:42:14.85ID:Mw182kRW
メモリ速いやつに差し替えようぜ
0983名前は開発中のものです。2015/01/08(木) 22:06:01.19ID:7iBzssXL
MSの最新技術の粋を集めたWARPに敵うはずがない
0984名前は開発中のものです。2015/01/08(木) 22:18:13.29ID:5+CLNQq0
WARPはSIMDも使ってるはずだよね。
0985名前は開発中のものです。2015/01/09(金) 13:53:51.10ID:VWlQDlh6
SSE2必須で使える場合SSE4.1まで使ってるとかなんとか
0986名前は開発中のものです。2015/01/09(金) 17:34:34.87ID:Iw10L3cl
>>977 です。
ちょっとSSE勉強してみます。
今更ソフトウェアレンダラなのは
自分で作れば最小限の機能になって使いやすいと思ったからです。
自作OSへの転用も簡単ですし。
SSE版は別プロジェクトでやってみます。
0987名前は開発中のものです。2015/01/09(金) 17:49:58.46ID:6dSDlYuJ
SSEより完成目指せ。
効率よく使ったとして数%の成績アップだ。体感では違いがないとかなりうる。
0988名前は開発中のものです。2015/01/09(金) 18:21:14.91ID:YwByCpOo
>>986
何その理由
普通にOpenGLかDirect3Dで良いじゃん
自作OSってふざけてんの?
0989名前は開発中のものです。2015/01/10(土) 06:38:12.95ID:FMkme2Bg
>>986
面白い物好きが来たな
OS作るのがメインでゲーム作りがサブなのか
目指すは究極のマルチプラットフォーム?
あるいは新しい3D環境でも作り出したいのかな?
レイトレーシングという概念を勉強すると、また新しい世界が見えるかも?
0990名前は開発中のものです。2015/01/10(土) 10:07:13.00ID:JC3btUBL
自前でできるといいと思うよ。
その後、FPGAに実装したらさらに楽しいと思う。
0991名前は開発中のものです。2015/01/10(土) 10:28:58.93ID:XEF52+tX
中身自作するにしてもAPIはOpenGLにあわせたものも作った方が良いと思うけどね。
自作物のパフォーマンスがどれだけ酷いか解るし。

まぁ趣味なんだろうから好きにしたら良いと思うけど。
0992名前は開発中のものです。2015/01/11(日) 00:41:53.86ID:EFs4nj8K
き、きっと将来のビル・ゲイツを目指しているんだよ!

オペレーション・システムそのものの開発ときたか
夢がデカすぎて全体像が見えない
0993名前は開発中のものです。2015/01/11(日) 00:44:24.46ID:IZj/cFBq
実用性はさておき、自分で一通り作れたら最高に感動できるだろうな。
がんばってくれ。
0994名前は開発中のものです。2015/01/11(日) 00:50:41.76ID:2AMxCLe9
お前ら東大の名物科目CPU実験くらいは知っといたほうがいいぞ
986がそうとは思わないがな
0995名前は開発中のものです。2015/01/11(日) 06:09:25.57ID:vPB1OoJW
WARPって必要な部分だけソフトウェアで補うとかじゃなくって
全部ソフトウェアになるのか
0996名前は開発中のものです。2015/01/11(日) 09:26:23.44ID:DORzARTJ
>>992-993
実はOSの方は既にある程度出来てまして・・・w
「三十日でできる!OS自作入門」のはりぼてOSをもとに作ってます。
ちなみにソフトウェアレンダラに至った経緯は

OS作った

それでゲーム作りたい

でも3dCG使えない

じゃあレンダラ作ろう

ある程度出来た←いまここ

自作OSの方はSSE未対応なのでlinux/OSX/Windows版のみの特権になるっぽいですね
今日中には移植しようと思ってます!
0997名前は開発中のものです。2015/01/11(日) 10:21:27.64ID:RDQlUyF+
次スレ立てたよ

C/C++ゲーム製作総合スレッド Part7 [転載禁止]2ch.net
http://peace.2ch.net/test/read.cgi/gamedev/1420939171/
レス数が950を超えています。1000を超えると書き込みができなくなります。