「切り取りコピー」はやめたほうがいいかも

ファイルをコピーするときはコピー&ペーストしまよね(Ctrl+Cでコピー)。
ファイルを移動するとき「切り取り」していませんか?(Ctrl+Xで切り取り)。
今までファイルの移動には切り取りを使っていました。
でもよく考えると切り取りって結構危険なことじゃないですかね。切り取りコピーの最中に何らかのエラーが出たり(時に大きなファイルでは起きがち)、PCがフリーズしたり、停電などしたら完全にコピー失敗しますね。

コピーが失敗すると切り取りの場合、元のファイルが既に削除されているので困ったことになります。
大事なファイルだと本当に大変です。

切り取りなんて危険なことをしなくても、ファイルを移動したい時は普通にコピーしてコピーが終わればもとのファイルを削除すればいいだけですよね。

これからは切り取りは一切しないと心に決めました。切り取りだけに。lol

レイトレーシンググルとレイトレーシンググル2のサンプルを更新しました

この2つの書籍のサンプルプログラムについて読者様からのご指摘がありました。サンプルを起動すると画面が真っ黒になるというものです。当初はこちらで再現できなかったのですが、調査の結果Nvidiaのドライバーを最新にアップデートするとこの現象が起こることが分かりました(なお、少なくとも2022年以前のNvidiaドライバーの環境では起きません)。

最新のNvidiaドライバーでも正常動作するように全サンプルをアップデートしましたので、読者の方は最新のサンプルをこちらからダウンロードしていただきますようお願いいたします。

またやってしまった…

以前このブログでも書いたかと思いますが、ファイルを喪失してしまった事件が過去にありました。
そして今日ついさきほど、またやってしまった。いや実際は昨日にやらかしていたのをさっき気付いたって感じでなんですが。

シェーダーグル1と2のサンプルを修正し正常に動くようにしたのですが、そのグル2のほうの修正ファイルをほぼ喪失してしまいました。グル1のほうは無事でした。

なぜそんなことになったのか、たぶんサイトにアップする用のフォルダ名にするためにフォルダ間をコピーしたりしていたとき、古い修正前のフォルダをアップ用にしてまい、修正後のフォルダを削除したのでしょう。

で、普通ファイルを削除してもゴミ箱に残っているので問題になりませんよね。

でもこうして紛失記事を書いているということは…そうゴミ箱を空にしてしまったのです。

「なぜこんなときにゴミ箱を空にするんだ」と考えました。私は何か作業が終わるとゴミ箱を空にしたくなります。問題になることはありませんでした(なのでその習慣が続いている)。
なお以前の現行紛失事件はゴミ箱が問題ではなくポータブルSSDとネットドライブの問題でした。

前にも書きましたが、事故は複数の要因が同時に起こると発生するものです。今回も、削除しただけなら問題なかったし、ゴミ箱を空にしただけなら問題なかったわけで。

不思議なことが1つあって、昨日その修正作業がやっと終わってフォルダ名を変えたりコピーしたりしている時、「なんかまたファイル消えそうだな」と思っていたことです。まさかその不安が現実になるとは思っていませんでしたが。

というわけで今は昨日やった作業を、涙目になりながらも、もう一度(GURU2だけで助かった。GURU1のほうが大変だったので)やっています。

お陰でDXRの修正を恐ろしく速くできるようになったので良かった…と思う事にします。たぶんあと30分以内に完了します。

書籍サンプルで気になる点などの掲示板を設置しました

書籍に関するトラブルシューティングなどの情報交換の場があったほうがいいと読者様から提案があり、私自身長らく気付かずにいたことにその時気づきました。個別のご連絡には対応できないため掲示板があれば確かにかなり有用であると思い設置に至りました。

フォーラム – ベアピクセル株式会社 (barepixel.co.jp)

読者の方は(読者以外でも)今後この掲示板をご活用ください。

原稿消失! 損失数百万

あれからもう5年も経ったのか、まだ5年しか経っていないのか、何れにしても忘れられない出来事。ノースブレイン時代を含め、今まで15年間、完成した原稿を紛失したのはこの時だけ。

合掌。

2019年5月に「OpenGL4入門 Linux版」という書籍を完成しました。サンプルプログラム、原稿、挿絵、表紙絵全て完成しました。そしていよいよ製品としてアップしようとした時、なんと原稿が無いことに気付きました。

「原稿が無い」

最初は「まぁどこかにコピーかなにかがあるでしょ」くらいに思ってたので、さほど気になりませんでした。
ところが、探す場所探す場所に原稿が無い。だんだん本格的に焦ってきました。なんせそれまで原稿が完全に消失することなど無かったのですから。
PCの全ドライブとネットドライブの中を全検索してもヒットしません。

原因は自分のミスとネットドライブの不具合によるものでした。

まず、最終的な完成原稿を1つしか残していなかったこと。いつもはバージョニングした直近バージョン原稿が最低でも2つはあるはずですが、この時はたった1ファイルだけ。
その原稿ファイルをポータブルSDDからネットドライブに「切り取りコピー」したのがまずかった。コピーが完了した後、SSDのUSBを抜きました。
実際は完了していなかったっぽく、ネットドライブ上にファイルがありません。また、「切り取りコピー」なので、もとのSSDにもファイルはありません。
その後、ファイルリカバリーソフトを購入してリカバリーを試みたみたのですが、「切り取りコピー」の場合、リカバリーできないようです。

そんなこんなで結局、3ヵ月かけて作成した原稿が消えてもう戻ってこないことに気づきました。

事故っていうのは複数の偶然が重なって起こるものなんだ、と昔誰かが言っていました。まさにその通りです。「こんなときに限って・・・」という事が重なると事故になります。
ファイルが1つしかないときに限って「切り取りコピー」するなんて、
そんなときに限ってネットドライブに不具合が起きるなんて。

その書籍がノースブレイン初のLinux版だということも実に奇縁です。
あと、不幸中の幸いとしては「Linux」版ということ。いつものWindows版に比べて売り上げは低かったろうと推測できる(これも初なので実際は分かりませんが)ので損害は比較的に少なかったのだと自身を慰めています。
書籍の販売ページも公開していましたが、もちろん販売は出来ませんでした。不思議に思われてた方もいらっしゃったかと思います(問い合わせメールもありましたし)。

2019年の春はちょうど法人化で役所を飛び回っていた時期で超忙しかったのも一因だったのかなと思います。忙しい時ほど慎重に(笑)ってことですね。

サンプルプログラム公開!

さて、せっかく作ったサンプルプログラムを眠らせておくのも勿体ないということで、サンプルプログラムを無料で公開することにしました。
こちらからダウンロードできます。
Linux(ディストロは問いません)上でX11Windowが表示できる環境であれば動作します。
面倒なサードパーティライブラリには依存していません。
もちろん肝心な本文(書籍)が無いので、最低限の準備が出来る方用にはなるかと思いますが。

DXR系サンプルを改良しました。

DXRレイトレーシング系のサンプルにて、DXR対応のGPUにも関わらず「デバイスがDXRに対応していない」旨のメッセージが出てサンプルが終了してしまった方は、CPU内蔵GPU(Intelグラフィック等)が選択されてしまった可能性があります。そのようなケースに対応するようにコードを追加いたしました。

上記エラーが出ている読者は最新のサンプルをダウンロードして頂きますようお願いいたします。

サンプルダウンロードページ

上記エラーは次の書籍で発生します。

DirectX12必携 instinct Ultimate(最終章のDXR使用サンプル)
RAY TRACING GURU
RAY TRACING GURU 2

体重マイナス10kg

2,3か月前から16時間絶食というものを始めました。開始時に71㎏あった体重がこの前61kg台になって自分でもびっくりしています。71kg→66kg→64kgとなったとき、あと1kg、63kg台になったらそこで止めよう。と考えていまいた。その後、変わらず16時間絶食を続けていたらまさかの61kg台に…

カロリーの摂取量と消費量、いわゆるカロリー収支がずっとマイナス、しかもかなりのマイナスだったのでしょう。なにせ1日の摂取カロリーはおそらく500kカロリー未満、日によっては300kカロリーの時もあったと思います。体重の減少率が半端ではなかったです。最初の1か月で6kgの減少、次の1か月で2kgその2週間後にさらに2kg落ちました。

カロリー収支があきらかにマイナスなので、これからしばらくは自由に食べれます。

話は変わりますが、前回の投稿で話した当別の唐揚げ屋さんにさきほど行ってきました。以前に多く受け取った旨を話して差額を支払ってきました(あと10個入りも買いました。これは食べきれない)。

ウェストはマイナス10cmです。人生初のオーダースーツ、3か月後に合わなくなりました…直しにいかないと。

当別の唐揚げ屋さん

北海道の当別町には有名な唐揚げ屋さんがあります。その唐揚げのサイズがあり得ないほど大きく、かつ安いことで有名なのですが、今日そこにぷらっと1人で行き、5個入りの唐揚げを買いました。

450円です。唐揚げ一個のサイズがかなり大きい、例えるなら女性の手のひらくらいの大きさ。それが5個も入って450円はかなり安いと思います。お持ち帰り用のプラ容器の蓋はいつも閉じていない状態で輪ゴムで無理やり押さえつけるような状態になります。

家に戻りテーブルにそれを置いたとき、「うわ5個入りでもこんなに大きかったっけ?」と思うほど、容器にパンパンに入っています。もちろん蓋は閉じておらず輪ゴムで無理やり押さえつけられている状態です。

さて一個だけ酒のツマミで食べようかと思い、取り出そうとしたとき、どうみても唐揚げが5個以上あることが瞬間的に分かりました。同時に、お店の人間違えたなと気づきました。

客としては嬉しいことなのかもしれませんが、私としては少々面倒です。店に申し訳ないし、連絡すべきかしないべきか悩むし(悩む時間もとられるし)、差額は多分430円くらいだと思います。10個入りが880円というのは覚えています。なぜ覚えているかというと、このお店のサイズで10個入りは無理だろうと思って5個入りにしたからメニューの中の10個入りの記憶があるからです。

例えば8800円の商品を4500円で買ったのなら迷わず店に電話しますが、差額400円の場合、悩みどころです。今度行ったときにでもその旨を話し差額を渡すか、あるいは、多めに購入するか、それくらいが妥当かなという気がしています。

と考え悩んでいる時間や、まさにこのようにブログに書いている時間のほうがコスト的に言えばすでに差額を超えている訳で、普通に食べたかったなというのが正直なことろだったりします。

唐揚げはいわゆるザンギではありません。また、普通の唐揚げともちょっと違う独特な味で美味しいです(醤油ベース)。皆さんも是非当別に行った際には立ち寄る価値はあるかと思います。

450円
10個入っているlol
サイズ感。(私の手)

Direct3D12 vs Direct3D9/11 速度比較

シナリオ1:大量のDrawコール(100万回/フレーム)を実行する場合。

DX9 シングルスレッド 100万回のDrawコールに要した時間142ミリ秒
DX11 シングルスレッド 100万回のDrawコールに要した時間158ミリ秒
DX11 16スレッド 100万回のDrawコールに要した時間54ミリ秒
DX12 シングルスレッド 100万回のDrawコールに要した時間56ミリ秒
DX12 16スレッド 100万回のDrawコールに要した時間31ミリ秒
DX12 16スレッド(バンドル使用)100万回のDrawコールに要した時間29ミリ秒
シナリオ1 測定結果グラフ

シナリオ2:劇重メッシュ(196万トライアングル)1個をレンダリングする場合。

DX9 196万ポリゴンメッシュ1個のレンダリングに要した時間28ミリ秒

DX11はドライバー不具合のため測定不能

DX12 196万ポリゴンメッシュ1個のレンダリングに要した時間15ミリ秒
シナリオ2 測定結果グラフ

今回、シナリオ2のテストでDX11の結果を除いたのは次の理由によります。
DX11のテストを実行したところ、レンダリング時間がほとんどゼロで返ってきました。つまりDX11では「コマ落ち」を許してると思われます。コマ落ちをゆるすと実際にレンダリングにかかった時間が分からなくなるため、測定結果を除きました。

3ds maxのフリーズ問題

今日maxでv-rayのテストレンダーなどで遊んでいたんですが、レンダリング後にmaxがフリーズして何も応答しないという現状が発生しました。
1回目のレンダーは出来るのですが2回目が出来ません(1回目のレンダー後にフリーズするので)。

最初、V-rayが原因かと思い、V-rayを削除・再インストールを3回くらい行いましたが、現象は消えず。色々操作しているうちにV-rayが原因ではなく、普通のmax デフォルトレンダラーでもフリーズすることが分かりました。
なので今度は3ds maxを削除・再インストールを2回ほど。この時点で3,4時間は費やしました。

その後、UIボタンでレンダーするとフリーズしないことを発見。つまり、shift+QとかF9でレンダーしたときのみフリーズするというなんとも奇妙なグリッチであることが分かりました。

どうやらwindowsアップデートしたことによりIMEが悪さをするようになったらしく、解決策としては、
IMEの設定→以前のIMEに戻す(みたいな項目)をオン。 つまりIMEを元に戻すと治りました。