[過去ログ] 【初心者歓迎】C/C++室 Ver.105【環境依存OK】 (892レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
793
(1): 2020/03/31(火)18:33 ID:aMyLRkM9(1) AAS
hello world的なプログラムなら1.0が楽だが、まともなアプリやゲーム作ろうとしたら、一々頂点定義していくのは面倒なだけ
しかも性能落ちる
794
(1): 2020/03/31(火)18:36 ID:chhHfIYK(1/2) AAS
一見簡単に見えるだけ
問題だらけのAPIデザインだよ
とにかくそんな遠い過去の技術どうでもいいから
795: 2020/03/31(火)18:46 ID:fXRU3fg2(2/3) AAS
>>793
2.0 は初期化時の
glBindBuffer(), glBufferData(), gl.bufferSubData()
が特に難しい。
STATIC_DRAW, DYNAMIC_DRAW
の違いや、glBufferData(), bufferSubData() の違いとか。
796: 2020/03/31(火)18:50 ID:fXRU3fg2(3/3) AAS
>>794
なら、あなたは何推しなの?
797: 2020/03/31(火)18:55 ID:Ow5tuxOJ(2/2) AAS
>>792
お前は俺の言うことがわからないということがわかった。
798: 2020/03/31(火)19:06 ID:L/5UA51D(1/2) AAS
htmlも昔の方が良かったって人なんだろうね
cssとか理解できないんだろう
799: 2020/03/31(火)19:12 ID:chhHfIYK(2/2) AAS
使い物になるだけD3Dの方がまし
OpenGLは初期のAPIデザインひきずって最後までマルチスレッド対応できなかった
拡張性が高いとか言われてるけど
ベンダ依存多くて互換性なんかほとんど期待できない
初心者が一ヶ月学んで卒業するための
教育用の価値しかない
こんなのにしがみついてどうする
800: 2020/03/31(火)20:05 ID:BqWL8gxf(1/2) AAS
ハゲドゥ
801
(1): 2020/03/31(火)20:19 ID:Sf1iuZK0(1) AAS
>>792
glBegin/glEndがdeprecatedになって、VBOを使うようになってわかりにくい、という主張はわかるけど、
2.0だと初期設定だけで200行必要というのと1.0は初期化の後はglBegin/glEndでポリゴンが書けるというのは、
対応してないところを比較している気がしてしまう。

それに、GLFWなんかを使わずに素のOpenGL APIを使って初期化するなんてこと今どきある?
2.0になってややこしくなったのは、世界が複雑になったのだから仕方のないことだと思うんだけど。

OpenGLの一番良くないところは、ハンドラが引数になくて、操作されるコンテキストがどれかということが
見えない状態になってしまっていることじゃない?
802: 2020/03/31(火)20:21 ID:1hnfAhIg(1) AAS
シェーダーとかなしで
グラフを書くだけの用途だから OpenGL1.0でごりおしだな

※ glBegin の対の glEnd を忘れて頂点バッファ漏らすのを ラッパークラスで回避する程度
803: 2020/03/31(火)20:57 ID:BqWL8gxf(2/2) AAS
OpenGL 2.0 専用スレ
2chスレ:tech
804
(1): 2020/03/31(火)21:29 ID:l+T/nNRF(1) AAS
GLFWなんて使うのは試作や使い捨てツールとかくらいだと思ってた。
805: 2020/03/31(火)23:22 ID:hFZHkIvl(1) AAS
つーか昔はフレームバッファに書きこんだところにドットが表示されてすっきりしてわかりやすかった
今は全部GPUにふくざつなめいれいを送らないとドットひとつ打つのも大変だから昔のほうが良い
みたいな議論
806: 2020/03/31(火)23:25 ID:vx6/o4d4(3/3) AAS
できることが増えただけで今でも昔のやり方をしたいなら(それで事足りるなら)、昔ながらのやり方をすればいいだけだと思う
807: 2020/03/31(火)23:28 ID:L/5UA51D(2/2) AAS
imx6でframebuffer上にcv::Mat作って直接弄ったら表示されたときはなんかすごく懐かしかったよ
808
(1): 2020/04/01(水)10:16 ID:5VJq6KKK(1/2) AAS
>>801
>OpenGLの一番良くないところは、ハンドラが引数になくて、操作されるコンテキストがどれかということが
>見えない状態になってしまっていることじゃない?

ほんそれ

python の matplotlib にも同じ違和感を感じる(重箱)
809: 2020/04/01(水)10:18 ID:5VJq6KKK(2/2) AAS
>>804
オレオレルール上は glut までですね判ります
810: 2020/04/01(水)11:06 ID:15FH3/nz(1) AAS
>>808
さすがにそういう30年ぐらい前のAPIデザインはいけてないってことで
direct state accessが導入されたんだけど、中途半端でぐだぐだ
811
(2): 2020/04/01(水)16:12 ID:bFLEHtBu(1/2) AAS
教えてください。
三項演算子

auto a=1;//なんでもいい
a?return 0:return -1;

なんでコンパイルエラー?
812: 2020/04/01(水)16:12 ID:S74lm4t5(1) AAS
>>811
return は文であって式ではない。
813: 2020/04/01(水)16:13 ID:x/Ef9YKS(1) AAS
>>811
return は式じゃないから
814
(1): 2020/04/01(水)16:14 ID:9AsYpIKM(1) AAS
あっ被った
なので解決策書いとく
return a ? 0 : -1;
815: 2020/04/01(水)16:59 ID:bFLEHtBu(2/2) AAS
ありがとうございました。
式と文がまだわかっていませんでした。

>>814
なーるです。
816: 2020/04/07(火)22:24 ID:lImlsKaR(1) AAS
windows環境でC++のスタティックライブラリを作りたいんだけど、公開するシンボルを選択することって出来ます?
817: 2020/04/08(水)00:42 ID:kI16h2GK(1) AAS
無名の namespace でくるめば内部リンケージにはなるけど
818: 2020/04/08(水)01:16 ID:99j8EV3x(1/2) AAS
なるほど 確かに消えるけどextern "C"付けると残りますね
819: 2020/04/08(水)03:09 ID:99j8EV3x(2/2) AAS
すみません自己解決に至りました
820: 2020/04/08(水)12:25 ID:lWfV0IAd(1) AAS
公開する気が無いものまでexternしたらだめだぞ
821: 2020/05/24(日)02:58 ID:r6ib7Asn(1) AAS
VC++からXboxゲームバーを起動するサンプルどこかにありませんか?
822: 2020/06/05(金)12:29 ID:BSWAx+xV(1) AAS
C++頑張ります
宜しくお願いします
823
(2): 2020/06/12(金)08:44 ID:DgWPkv47(1/2) AAS
pow関数が遅いというのは今もそうで今後も変わらなさそうで
できるだけ使うべきではないですかね?
824: 2020/06/12(金)09:22 ID:M5MGuP1h(1) AAS
>>823
何も前提条件を定めず「遅い」とか「使うべきか」とか議論しても無意味だよ。
例えば他の関数と比べて100倍遅い関数があったとして、それを使ったプログラムの実行が1msで終わるものなら、通常は別に問題ないだろう。
その遅い関数がどのくらいの回数呼ばれるのか(数回、数万回、数億回)、許容される時間はどれだけなのかによって異なってくる。
とりあえず使っとけ、問題が起こりうるケースならそのとき考える。

そもそもpow関数が必要ならそれを使うしかないんでないの? それに変わる同等な処理を自前で実装できるとは思えないから、powの頻度を減らした別のアルゴリズムを考えるか、同じ計算が繰り返し行われるなら覚えておくかするしかないと思う。
825: 2020/06/12(金)09:46 ID:F8A7CVPb(1) AAS
元の式で数学的に最適化してしまえるケースは多い
何も考えずにコーディングだけしてると無駄な計算量が増える
826: 2020/06/12(金)10:41 ID:0Y8ikztI(1) AAS
ホワイトボードで式の変形を何種類かやってテストくらいはしないとな
827: 2020/06/12(金)10:49 ID:6ZYMCXZR(1) AAS
整数回のべき乗なら最適化も可能だしこだわるならやってみればええ
でも数値演算ライブラリはFPU使って並列処理させてるだろ
わざわざCPU資源使って計算させるほどでもない
無駄なことして他の処理が遅くなることもあり得るからの
828
(2): 2020/06/12(金)11:01 ID:HKvMu5uJ(1) AAS
>>823
pow(a,b)

aが同じ値でbのみ変わる事が多いなら
log(a) をとっておいて exp(log(a)*b) とする
取りうる値がわかっていて多くないなら
log(a)をテーブルにしておく

bが整数なら乗算や除算を組み合わせる
bが整数+0.5ならsqrtを組み合わせる

大量にpowを計算する必要があるなら
SIMDやGPUを使う
省1
829: 2020/06/12(金)13:56 ID:DgWPkv47(2/2) AAS
色々ありがとうございます
遅いので工夫しろというのが常識らしいですね
830: 2020/06/12(金)15:22 ID:IF4Iurnq(1) AAS
いや、必要なら工夫しろ、必要なければ余計なことはするな、だろう。
831: 2020/06/12(金)15:39 ID:7ERtrFf+(1) AAS
速い遅いは実際に書いてるコードの中での相対的なものによるから自分のコードで観測しろ ってことだ
832: 2020/06/12(金)15:45 ID:6Yfh5mGy(1/2) AAS
すみません
他スレでJavaでdirectXやるにはCをやれといわれてココに来ました
CでdirectX出来るそうなので始めたいんですが
何をインストールすれば良いのですか?
Windows10Pro64bitですよろしくお願いします
833: 2020/06/12(金)15:50 ID:1pXOSbLZ(1) AAS
Goスレ池
834: 2020/06/12(金)15:58 ID:6Yfh5mGy(2/2) AAS
しっCじゃ出来ないのか、ウソつき
835
(1): 2020/06/13(土)04:51 ID:JTDnVNgN(1) AAS
ウソってことはないはずだけど、よう分からん。
DirectX のスレッドなら確実じゃないかな。

【C++】 DirectX初心者質問スレ Part41 【C】
2chスレ:tech

ってのが見つかった。たらい回しにするみたいで気が引けるが。
なお、そちらのスレッドは見てないので紹介が適切かも分からない。
836: 2020/06/13(土)19:12 ID:Q06gyfKt(1/2) AAS
>>835
すみません
マルチプラットフォームで3Dやる言語には
JavaでCを呼び出してdirectXをいじるのではなく
UnityでJavaScript言語という結論にいたりました。
ありがとうございました。
837: 2020/06/13(土)20:09 ID:yCAzSueK(1) AAS
jsはもうサポート終了宣言してるからc#にしとこうな
838: 2020/06/13(土)20:25 ID:Q06gyfKt(2/2) AAS
よくわからないですけど
Unityの内部で使う動作スクリプトがC♯記述一択で
ゲームパッド入力はDirectXのC++で
AndroidスマホのタッチイベントはJavaだし
書き出すときはWebGLだからJavaScriptに変換されるという事かな〜意味不明だ
839: 2020/06/14(日)03:01 ID:k9aaiAZC(1) AAS
>>828
exp って pow よりどの程度速いの?
840: 2020/06/14(日)06:59 ID:fieD7Z6G(1) AAS
powは内部的にはexp(log(a)*b)
当然環境次第だけど
おおよそ半分くらいかな

もちろんlog(a)のテーブル検索に時間がかかるようだと
素直にpowを使う

>>828
powがパフォーマンスに影響を与えているという前提のチューニングの話で
ほとんどの場合はそんな事はないので
ほとんどの場合はそのままpowを使うべき
841
(2): 2020/06/14(日)21:26 ID:csFQf9Gf(1) AAS
y = a * pow(x, 3.0) + b * pow(x, 2.0) + c * x + d;
って糞コードを見たことがある
842: 2020/06/14(日)22:50 ID:OziIXX0s(1) AAS
そりゃ^演算子が使えないからクソコードに見える
843: 2020/06/14(日)23:22 ID:9pT3ELpf(1) AAS
**「…」
844: 2020/06/14(日)23:59 ID:kf4Cc+ef(1) AAS
^は使えるだろ
845: 2020/06/15(月)00:27 ID:y+ohQOA8(1) AAS
速度、精度、見やすさ、コードサイズ、ライブラリ使用
全ての面で糞コード

pow(x,y)が電源ボタンxをy回押す
という別の関数だということは無いとして
846: 蟻人間 ◆T6xkBnTXz7B0 2020/06/15(月)00:32 ID:xMj5gyYr(1) AAS
こうか?
y = ((a * x + b) * x + c) * x + d;
847: 2020/06/15(月)06:03 ID:6Rk/ljNV(1) AAS
元の数学的な式を素直にコードに落とし込んだ感じはあるけどな。
「xの3乗」を「pow(x, 3.0)」と「x * x * x」との
どちらで書くのを自然に感じるかという話だが。
848: 2020/06/15(月)11:50 ID:6B2IPoD1(1/2) AAS
クリティカルでないものならどう表記しようが別にどうでもいいがな
1億回計算したところで時間差は感じないだろうよ

んなことよりべき乗扱う上で大事なのは桁あふれと有効桁数の処理
必要精度のはっきり定義された科学計算用のライブラリ使ったほうがマシ
849
(1): 2020/06/15(月)12:09 ID:XCtiekxI(1/5) AAS
精度的には加減乗算の方がはっきりしてる
普通は無限精度で求めた後に丸めたのと同じ値になる
つまり誤差最小
850: 2020/06/15(月)12:13 ID:XCtiekxI(2/5) AAS
クリティカルじゃないという前提はどこから?
851: 2020/06/15(月)12:16 ID:6B2IPoD1(2/2) AAS
>>849
たとえばJIS規格に則った計算方法てのもある
測定値を足し合わせるだけでも±有効桁/2を混ぜ込まなきゃならなかったり計算ごとに有効桁に丸めこまなきゃならなかったり
乗算の場合は有効桁を減らしたりとかまあいろいろ

無限精度で計算して最後に丸め込んだら×もらう仕組みになってたりする
852: 2020/06/15(月)12:20 ID:XCtiekxI(3/5) AAS
精度的にpowを使うことで解決することなど無いと思うが
853: 2020/06/15(月)12:21 ID:XCtiekxI(4/5) AAS
>>841の件
854: 2020/06/15(月)12:27 ID:XCtiekxI(5/5) AAS
powはライブラリや環境で結果が違う
855: 2020/06/15(月)12:44 ID:O39kdlr3(1) AAS
ポォーゥふみっドカンッ!
856: 2020/06/15(月)13:24 ID:iqqqiJ5Y(1) AAS
>>841
y = ((a * x + b) * x + c) * x + d;
857: 2020/06/15(月)13:30 ID:5rULqijg(1) AAS
いわゆるスパコンなんかだと式の変形してがんばらずとも pow そのままで速かったりするのかな?
858: 2020/06/15(月)19:10 ID:aDRazGid(1) AAS
ホーナー法か
名前を思い出せなくて難儀した
859
(1): 2020/06/16(火)05:58 ID:ehL8QS9+(1/8) AAS
c++使う理由ってなんですか?
2dゲームにおいてもc++が必要でしょうか?
860: 2020/06/16(火)06:19 ID:JnjsQYAt(1/3) AAS
普通の2dゲーム作るぐらいならluaとかでいいよ
861: 2020/06/16(火)06:29 ID:ehL8QS9+(2/8) AAS
ゲームと言うよりゲームエンジンでした
すみません
テクスチャの描写にすらC++は必要なのかなと
ポリゴンならもちろnC++一択でしょうけど
862: 2020/06/16(火)06:41 ID:MpRAah0t(1) AAS
必要=必ず要る
という意味なら答えは分かってそうな気がするが
別の意味ならもっと日本語をうまく使った方が良い
863: 2020/06/16(火)06:57 ID:5RaFaaPW(1) AAS
基幹部分の話ならC++使わずにCで書くって方向性もあるかも。
864
(1): 2020/06/16(火)07:13 ID:ehL8QS9+(3/8) AAS
可能かどうかで言えばテクスチャの描写はすべての言語でできると思います
ただRPGメーカーやウルフエディタはC++です
ここに理由はあるのかなと疑問に感じました

2dでもopenglなどを使うのですか?
865: 2020/06/16(火)07:26 ID:JnjsQYAt(2/3) AAS
奥の方では2dでも使ってるよ
今どきのコンピュータならインタプリタでも速度は足りるけどc++を使うのはまあそれが一般的で資産があるからだと思うよ
866: 2020/06/16(火)07:32 ID:Z1WD1bfY(1) AAS
足りるかどうかなんて処理次第
867
(1): 2020/06/16(火)07:37 ID:1BidYCqI(1) AAS
GUIのOS画面「🐴🦌🦋」
CUIのOS画面「AAA」
868: 2020/06/16(火)08:00 ID:TW5yPVrb(1) AAS
ライフゲーム「•|•/•-•\•|•/•-•\」
7行テトリス
7行オセロ
10行ぷよぷよ
はじめてのゲームプログラム「荷物君」
869
(1): 2020/06/16(火)08:42 ID:6qjQ65l0(1/3) AAS
>>867
絵文字に猪って無いんだっけ?
870
(1): 2020/06/16(火)09:08 ID:6qjQ65l0(2/3) AAS
>>864
RPGメーカーもウルフエディタもさわったこと無いけど、RPGツクールみたいなものでしゅ。つまりただの2Dゲームではなく、ユーザが作成した(場合によっては膨大な大きさの)データを編集するツールと、そのデータを読み込んで処理しながら2D RPGとして動かすプレイヤ(仮想ゲーム機)のセットみたいなもの。
ただの2Dの描画ならマシン性能は大して求められないけど、膨大なデータを効率的に保持して動的な変更に耐えうるような仕組みを作るなら、処理速度が速くメモリ効率も良いC++を使うメリットはあると思う。特にスイッチや変数、イベントなどをユーザが定義して処理するなら、処理速度が遅いとかなり厳しいと思う。

で、結論を言えば、マップエディタが作りたいだけならわざわざ学習コストの高いC++に手を出して挫折する可能性を高める必要はない。他の使いやすい言語やフレームワークを使っとけ。
871: 2020/06/16(火)09:09 ID:eN791Gfm(1) AAS
>>869
>>859> 2dゲームにおいてもc++が必要でしょうか?
C++をディスってるのが分からな🐗?
872
(1): 2020/06/16(火)09:09 ID:JnjsQYAt(3/3) AAS
でしゅ
かわいい
873: 2020/06/16(火)09:21 ID:TBO9MSyh(1) AAS
> テクスチャの描写にすら
すら?
874: 2020/06/16(火)09:22 ID:6qjQ65l0(3/3) AAS
>>872
おお、またやってしまった。
以前会社の上司にも似たような誤字を送ったことがある。いまだにスマホのフリック入力は慣れない...
875: 2020/06/16(火)09:25 ID:ehL8QS9+(4/8) AAS
>>870
何の言語が適切でしょうか
876: 2020/06/16(火)10:11 ID:ZzQUhJK1(1/3) AAS
Unityスレにもいた人だけどなんでこんな少ない情報で最適な言語を求めるんだろうか?
別にC++でもC#でもjsでも実現可能だし、大差ないと思うけど
COBOLとかならやめとけって言えるけど
877: 2020/06/16(火)10:50 ID:ehL8QS9+(5/8) AAS
答えというか、一般論を知りたいです
例えばエレクトロンでピクセルの操作は出来ますか?
878: 2020/06/16(火)11:13 ID:zfRgO9so(1/2) AAS
一般論なら、Unity

他には、Electron, React Native

サーバー側が、Ruby なら、Rails もある。
ただし、GUI は、HTML, CSS/SASS, JavaScript になる
879: 2020/06/16(火)11:14 ID:ehL8QS9+(6/8) AAS
ゲームではなく、タイルエディタでもunityという選択なんですか?
880: 2020/06/16(火)11:21 ID:ZzQUhJK1(2/3) AAS
一般論なら使い慣れた言語でいいんじゃね?程度だと思うよ
実現したい機能の実装が不可能で無い限り関係ない
利用者の多い言語のほうがフレームワークやライブラリの面で開発は楽になるかもしれない

electronは言語ではなくフレームワークだけどなんで言語と比較してるの?
electronの質問は該当スレへ
今の質問もスレからずれてると思うけど
881: 2020/06/16(火)11:26 ID:ehL8QS9+(7/8) AAS
すみません。
既存のエディタがなぜc++なのか知りたかったのです。
882
(1): 2020/06/16(火)11:52 ID:ZzQUhJK1(3/3) AAS
いや、unityスレでも言われてたけど作った人に聞け以外に答えは無いよ
ウルフエディタを触ったことは無いがやってることはC++でもC#でもjavaでもできるはず
他言語は俺じゃわからんが画像を任意座標へ表示するようなことができる仕組みさえあれば大抵のことはできるだろう
883: 2020/06/16(火)11:55 ID:HRUNOXRJ(1) AAS
初学者なら兎も角、熟練者が少人数で使う分には言語による開発効率の差なんて大差ない
手足となるライブラリが一通り揃って使い方知っていれば、c++だろうがサクッと作れる
884: 2020/06/16(火)12:27 ID:ehL8QS9+(8/8) AAS
ごめんなさい
じゃあpyqtでやります
比較的pythonに慣れているので
885: 2020/06/16(火)12:35 ID:zfRgO9so(2/2) AAS
そもそも、Tiled Map Editor を使うから、作るのは無駄だと思うが
886: 2020/06/16(火)18:18 ID:zj4kqDkW(1) AAS
>>882
>任意座標へ表示

ここでポインターが便利ってことになるんだよな
線引いたり塗りつぶしたりといったプリミティブなことを自分でやるならポインター使えなきゃやってられない
ここまでくるとアセンブラの威力まざまざと見せつけられるわけだけども次点でC/C++
887
(2): 2020/06/23(火)21:41 ID:zFVhfcF5(1) AAS
競技プログラミング始めたいんだけど、どうやってcpp勉強すれば良い?
Cはある程度わかるからcpp特有の文法を勉強したい
変数みたいなのに>>みたいなのいっぱいついてて何がなんだかわからん
888: 2020/06/23(火)22:27 ID:FqDmWE10(1) AAS
演算子に特に意味はない
擬装出来るからな
889: 2020/06/23(火)22:41 ID:Oi2DUy0P(1) AAS
とりあえず解いて他人の回答をみる
知らない内容があればググる
これの繰り返し
890: 2020/06/23(火)23:01 ID:NciFLwYZ(1) AAS
>>887
普通に本屋で入門書買ってきてやればいいだろう。
それとC++をcppと呼ぶのはやめれ。
891: 2020/06/24(水)10:48 ID:6+kkBVmV(1) AAS
>>887
細部を観る前にまずオブジェクト指向を理解するべき
892: 2020/06/24(水)18:20 ID:amytSPrH(1) AAS
競技プログラムでまずオブジェクト指向?
順番が違う気がする
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.160s*