Fuara Tech

DirectXShaderCompiler をビルドする

ドキュメント

github.com

クローン

git clone https://github.com/microsoft/DirectXShaderCompiler.git

git submodule update --init --recursive

準備

Windows SDKWindows Driver Kit をインストールしておく。

Cmake

プログラム一覧の中から Visual Studio 2022 以下の「Developer Command Prompt for VS 2022」を起動する。

Git から取得したフォルダに注意しつつ、下記のコマンドで cmake を実行する。

cmake D:/Github/DirectXShaderCompiler -B D:/Github/DirectXShaderCompiler/output -C D:/Github/DirectXShaderCompiler/cmake/caches/PredefinedParams.cmake -DCMAKE_BUILD_TYPE=Debug -G "Visual Studio 17 2022"

上記リンクの「Generating a Visual Studio Solution」を参照。

成功すれば output 以下に LLVM.sln が作成されるので VS から起動する。 

UnityでのC#デバッグ

Unity で C#を使ったコーディングをしていた時、太古の昔は Mono Develop を使い、その後 Visual Studio Code がリリースされてからはそちらに移行していた。

ただ、2023.2 のドキュメントを確認したところ、Visual Studio Code は「実験的」という表記つくようになった事から、現在ではそれほど推奨される開発環境ではなくなったように見える。Visual Studio Code ではなく、公式では Visual Studio の使用が推奨されているように見える。

Visual Studio プラグイン

Visual Studio Installer から「Visual Studio Tools for Unity」をインストールする。

Unity の設定

Preferences > External Tools に移動し、External Script Editor から「Visual Studio」を選択する。Visual Studio がインストールされていれば、デフォルトで設定されているはず。

デバッグ実行

Visual Studioブレークポイントを貼って実行させておく。Unity から Play すれば、ブレークポイントに入る。

参考

Unity で C# コードをデバッグする - Unity マニュアル

Jupyter Nootebook で 3D Plot

Plotly が使えた。

 

インストール

pip install plotly

 

Jupyter Nootebook  を立ち上げて下記を実行。


# Import dependencies
import plotly
import plotly.graph_objs as go

# Configure Plotly to be rendered inline in the notebook.
plotly.offline.init_notebook_mode()

# Configure the trace.
trace = go.Scatter3d(
    x=[1, 2, 3],  # <-- Put your data instead
    y=[4, 5, 6],  # <-- Put your data instead
    z=[7, 8, 9],  # <-- Put your data instead
    mode='markers',
    marker={
        'size': 10,
        'opacity': 0.8,
    }
)

# Configure the layout.
layout = go.Layout(
    margin={'l': 0, 'r': 0, 'b': 0, 't': 0}
)

data = [trace]

plot_figure = go.Figure(data=data, layout=layout)

# Render the plot.
plotly.offline.iplot(plot_figure)
  

import plotly.graph_objects as go
import numpy as np
np.random.seed(1)

N = 70

fig = go.Figure(data=[go.Mesh3d(x=(70*np.random.randn(N)),
                   y=(55*np.random.randn(N)),
                   z=(40*np.random.randn(N)),
                   opacity=0.5,
                   color='rgba(244,22,100,0.6)'
                  )])

fig.update_layout(
    scene = dict(
        xaxis = dict(nticks=4, range=[-100,100],),
                     yaxis = dict(nticks=4, range=[-50,100],),
                     zaxis = dict(nticks=4, range=[-100,100],),),
    width=700,
    margin=dict(r=0, l=0, b=0, t=0))

fig.show()
  

 

参考

python - Make 3D plot interactive in Jupyter Notebook - Stack Overflow

3d axes in Python

プリコンパイル済みヘッダーの使い方

プロジェクトに、stdafx.h と stdafx.cpp を新規追加して cpp から h をインクルードする。

 

stdafx.cpp を右クリックして、プロパティーを開き、Precompiled Headers の項目で「Create(/Yc)」に変更する。

 

Visual Studio のプロジェクト設定を開き、Precompiled Headers から「Use(/Yu)」を選択する。

参考

https://usagi.hatenablog.jp/entry/2019/12/08/073000

Visual Studio の拡張機能 vsix の再作成

 

vsix を再作成した場合は、.vsixmanifest ファイルのバージョン番号を上げる。 

バージョンが同じ vsix をインストールしようとすると、

「この拡張機能は、すべての適用可能な製品にすでにインストールされています」

というエラーが表示される。