Git LFS について(オブジェクトとロック)

以前に 「Git LFS を使ってみる」という記事を書いたのですが、現在のものと少し合わなくなってきている感じがしたので書き直しました。
Git LFS が出始めの頃と比較すると利用できる環境は格段に増えています。

Git LFS について

出始めの頃は別パッケージとしてインストールが必要でしたが、現在は Git for Windows の中に含まれています。
Git LFS は、指定されたファイルタイプ(拡張子による設定など)によって、特別な処理を行いバージョン管理させる仕組みとなっています。
具体的には、比較的ファイルサイズが大きくなるバイナリファイルを対象に指定して、バイナリファイルへのリンク情報をテキストの形にして git によるバージョン管理に載せる動きとなります。
リポジトリ上では、バイナリファイルは git の標準のデータ構造とは別の場所に格納されていたりします。

現在においては、各種 git リポジトリサービスが、この Git LFS に対応しています。

  • GitHub
  • GitLab
  • GitBucket
  • GitBlit
  • Bitbucket
  • Azure DevOps

ただ Git LFS にもバージョンがあり、現時点においては git-lfs のバージョンは 2.7.2 となっています。この過程で Git LFS の通信プロトコルにも拡張が入ることがあり、機能が増えたり、作業の改善があったりとします。
例えば初期では LFS 対象のバイナリファイルが1つずつしかダウンロード出来ていなかったのが、複数を並列でダウンロード出来るようになったりしました。
こういった点より、リポジトリサービスを提供するアプリケーションもバージョン更新が定期的であることが理想的です。GitBlit はかなりの間、バージョン更新が無いようなので利用はあまりオススメできないかと思います。

続きを読む


OpenGL で描画先独立なブレンディング設定を使う

OpenGL でデュアルソースブレンディングを使うと、出力先カラーバッファが1つになってしまう!という話を聞いて、「1つのカラーバッファに2色出力し、ブレンド設定でさらに演算」という場面ってどのくらいあるのだろうと疑問に思いました。(おそらくデスティネーション色と処理したいのでしょうが)。
そんな中、Multiple Render Target (MRT)で、各カラーバッファのブレンディング設定は独立に出来たはず、と思うことがあったので使い方を確認してみました。
ちなみに、DirectX11 ではカラーバッファのブレンディング設定の独立(個別)は簡単にできます。D3D11_BLEND_DESC構造体を見るとすぐに分かります。

結果としては、 OpenGL でもこのようにブレンディング設定を変えて描画できます。

続きを読む


技術書典6の感想など

技術書典6に本を出す側で無事に参加出来たので、今回もその感想を残しておこうと思います。技術書典への頒布側での参加は2度目となります。
前回は、疲れと解放感から感想まとめまでが時間が掛かっていたのですが、今回は後処理で色々と作業をしていて遅れました。

頒布内容の紹介は別ページを参照ください。

やっぱり物理本はいい

今回も前回同様、物理的な本を出す、ということを重要視していました。但し今回は電子版の用意をしてみることにしました。
物理本の印刷関連は前回体験したので、今回のチャレンジは電子版のダウンロードカードをどうするか、といったところでした。

サークル:すらりんラボが採った方法は以下の2つです。

  • 対面電書でのコード発行
  • BOOTHでのパスワードzipの配布

ここまで準備して挑んだのですが、電子版単体としては売れ行きは今ひとつでした。きっと技術書典という場所も関係しているのでしょう、圧倒的に物理本に人気がありました。
物理本が無くなってから、仕方なく電子版で妥協という方も居たのではないかと思います。

ダウンロードカードですが、安価な価格設定でバリアブル印刷可能なところを見つけるのが大変ですね。
シリアルコードを自分のプリンタでシールラベル印刷して、カードに貼る形式も最悪ケースで考えていましたが、色々と考えると BOOTH でのパスワード zip の配布が一番手軽だと思います。
手軽な方法が採れるということは、コストを抑えられるので物理本のオプションで電子版を付けられる!ということにも繋がります。今回バリアブル印刷でコストを掛けてしまったため、別料金を頂く形になってしまいました。これがさらに問題に繋がったわけですが・・・後ほど。

続きを読む


VisualStudio2019 オフラインインストール準備

Visual Studio 2019 が公開されました!
とりあえずインストールをと思いつつも、今は時間がないのでオフラインインストール出来るように仕掛けてみました。

Visual Studio 2019 のインストーラーファイルを取得した後で、コマンドラインで、 “vs_professional.exe –layout D:\VS2019Ja –lang ja-JP” と打ち込んでファイルを収集させてみました。
この方法は従来通りで変わっておらず、うまく動き出しているようです。


技術書典6に向けて追い込み中です

今週の初めに告知したように、技術書典6へ参加してきます。
DirectX12 や Vulkan の入門書籍を今回は用意しました。
一緒に参加する相棒は3Dオーディオ入門という書籍を書き上げてくれました。

・・・というより、みんな最後の締め間際の追い込み作業中です。

すらりんラボは技術書典6に参加します

なかなかブログ更新出来ていない点がありますが、その分これらの冊子に力を入れたので、是非見てもらえたらと思います。


RDPでGraphicsAPIは実行出来るか実験

前回、RDP で OpenGL アプリを起動させる方法を考えましたが、そもそも他のグラフィックスAPIではどうなのか、気になってきたので調べてみました。

RDP で動作するか?

  • OpenGL : 動作しない
  • DirectX11 : 動作する
  • DirectX12 : 動作する
  • Vulkan : 動作する

まさかの OpenGL だけが動作しないという状況だったようです。確認したのは、2台とも Windows10 1809 の環境で、デスクトップPCとノートPCという構成でした。
低レイヤーグラフィックスAPIのDirectX12/Vulkan らが RDP 経由でも使えたという点で驚きました。画面を単なる画像として送るなら、これらの動作に納得もあるのですが、かつては DirectX9 や OpenGL がリモートデスクトップ環境下で動かなかった時代を味わったために動作しないという思い込みがあったようです。

プログラムコードで考えてみると、デバイスコンテキストが不要な API だと動作しているようですね。あとは、画面ロック・UACの暗転でいわゆるデバイスロストが発生しない時代になってきたから、というのもありそうです。


リモートデスクトップで OpenGL アプリを操作したい

Windows のリモートデスクトップで OpenGL を使用したアプリケーションの起動は出来ないことは、経験上知っていたのですが、OpenGL アプリを起動した状態で、リモートデスクトップ接続すると問題なくアプリが使用できる、という話を聞きました。

RDP接続後にOpenGLアプリを起動したい

事前にOpenGLアプリを起動した状態で、他の端末から RDP で接続すれば問題なくアプリは操作できますが、事前に起動しておくことが不可能な時もあります。
また、アプリケーションを終了してしまって、再度起動したいということもあると思います。

このようなときには、 tscon コマンドを使うとよいようです。
このコマンドを用いるとセッションを切り替えることができるようなので、一度物理的なコンソールを持つセッションに切り替えてアプリケーションの起動をする、という方法が使えます。このときに、一度リモートデスクトップは切断されてしまいますが、再接続すればアプリケーションが起動した状態から再開できます。

アプリケーションの起動をするまでを次のような内容でバッチファイルにして、起動する際にはこのバッチファイルを実行するようにします。

実行する際には、管理者権限ありのコマンドプロンプトで実行してうまくいきました。一般権限のコマンドプロンプトだと、このままのバッチではうまく動作しない可能性があります。

他にもセッションのIDが必要な場面では、 “query session” を実行してみて、どのようなセッションが生きているかを見てみるのもよさそうに思います。


VisualStudio の HLSL テンプレートがおかしい その2

以前に、 VisualStudio の HLSL テンプレートがおかしい として、修正したシェーダー用のプロジェクトテンプレートですが、 Visual Studio 2017 の更新をしたら、また妙な状況になってしまったようです。
もしかすると、先の手作業の修正が引き金で新規にインストールした場合には、おかしな構造ながらも正常に動くのかもしれません。

続きを読む


Visual Studio Graphics Debugger の終了

Windows 10 October 2018 Update (1809) で、 Visual Studio 2017 の Graphics Debugger が正常に動かなくなりました。最近は Vulkan を勉強していることが多く、 VS の Graphics Debugger は使っていませんでした。再び D3D12 の勉強を再開した今日、この問題を発見しました。

最初は、今の D3D12 のために、色々と新しいインターフェースを使ったのが問題で失敗したのだろうと考えていたのですが、どうやらそうではないようです。
仕様として 1809 バージョンの上では VS 付属 Graphics Debugger は使えないということになったようです。

続きを読む


読書

年末年始には久しぶりに本を買いました。
まだざっとしか読んではいないのですがアタリでした。

近年はゲームエンジンがゲーム作成(プログラミング)の主流となりつつあるので、C++で組んでいく方は随分と敷居が高いものになっている気がします。
そのせいもあってか、書籍の形で出版されることは無くなってしまったと思っていたので、出てきたことに嬉しく思いました。
内容の方も十分で、これから勉強をするのにもよいなと思います。

1つ興味深い点としては、ゲームエンジンでよくあるコンポーネントシステム型のやり方で C++ にてエンジンをくみ上げていくのが面白いです。
昨年秋の技術書典では当サークルでは C++ を使っての、割とコンポーネントシステム型を意識したシステム作りの本も出していました。

C++で挑む 2Dアニメーションシステム制作演習 (BOOTHへの商品リンク)

ゲームプログラミングC++が人気のある書籍になってくれれば、まだまだC++でやれる!ということと、コンポーネントシステム型の開発は間違いではない(むしろアタリ)という自信にもなるので、期待しています。

そして積み本となったのが、ドラゴンクエストXを支える技術 です。一緒に買ったのですが、読む時間が取れずでした・・・。