Hello World / plɹoM ollǝH

主に自分用メモ

PySide drag start from QPushButton

Qt (PySide) は一部のWidget以外でドラッグ開始を実装しようとすると意外と面倒 ググると大体受け入れる側のサンプル出てきちゃうし class MyButton(QPushButton): def __init__(self, parent): super().__init__(parent) self._startPos = QPoint() def mou…

Unityの回転値を右手座標系に変換

まず平行移動のX方向が逆なのでxに-1を掛けます trans.x *= -1.0f; return glm::translate(glm::mat4(), trans); 回転値はZXYオーダーで、ZとY回転に-1を掛けます glm::mat4 m; m = glm::rotate(glm::mat4(), -rotate.z, glm::vec3(0.f,0.f,1.f)) * m; m = g…

ここがクソだよ Insta360 GO

辛口レビュー いいところはあちこちで散々書かれるので私がクソな点をまとめます YouTuberの販促動画だけ見て買って不幸になる人(私)がでないようにするためです まだ買ったばかりなので、使い込んでみての感想はまた別に書くかもしれません TLDR Don't Bu…

Tech Toolbox for Game Programmers @GDC2016

せっかくだから俺はこの動画を要約するぜ www.youtube.com 1. The Poor Man's Dialogue Tree お金を掛けないダイアログツリーの作り方 普通のやり方 Unityのアセットストア等で買うと高い サードパーティ製(本当に必要なものではない可能性がある) 退屈!…

程々に快適なゲーミングPCを5万円台で組む

経緯 GPD POCKET(初代)のバッテリーが膨張してしまったので、もうUMPCは懲り懲りということで久しぶりにデスクトップPCにしようと思い立ちました。ゲーム制作&遊ぶ用に安くてある程度3Dゲームも動くPCを探そうと思いましたがどれも予算オーバーなのでコス…

Visual Studio 2015/2017 でマルチスレッドのプロファイリング

拡張機能をインストールして 分析 -> 同時実行ビジュアライザー -> 現在のプロジェクトで開始 (日本語の場合) スレッドごとの状況見れるようになります

PySide2 + librosa + pyaudio + numpy, play audio repeatedly

import librosa import numpy as np import pyaudio from PySide2.QtCore import * from PySide2.QtGui import * from PySide2.QtWidgets import * import sys class Widget(QWidget): def __init__(self): super().__init__() self._audio = pyaudio.PyAudi…

PySide2 ダイアログの「?」ボタンを非表示にする

QApplication.setAttribute(Qt.AA_DisableWindowContextHelpButton)

QFileSystemModel + QListView Auto Scrolling on Init

QFileSystemModelにはdirectoryLoadedというSignalがあるのでそこで処理する default_path = '*****' def on_directory_loaded(): i = self._model.index(default_path) view.setCurrentIndex(i) view.scrollTo(i, QAbstractItemView.EnsureVisible) model =…

pyside scoped signal blocking

IMPLEMENTS class ScopedBlockSignals: def __init__(self, obj): self.obj = obj def __enter__(self): self._recursiveSet(self.obj, True) def __exit__(self, _exc_type, _exc_val, _exc_tb): self._recursiveSet(self.obj, False) def _recursiveSet(se…

歪曲収差 glsl

void mainImage( out vec4 fragColor, in vec2 fragCoord ) { vec2 uv = fragCoord.xy / iResolution.xy; vec2 v = uv - vec2(0.5); float k1 = 1.5; float k2 = 0.5; float r1 = length(v); float r2 = r1 * (1.0 + k1*(r1 * r1) + k2*(r1 * r1 * r1 * r1))…

clang-formatをVisual Studioで

Visual Studio2017で対応されてるのでAStyleから乗り換え 実行されるタイミングがよくわからんので編集中のコード整形に加えて ビルドイベントで全ソースなめてフォーマットするイベントを追加しておく 1. Windowsバイナリをインストール Pre-Built Binaries…

Win+FでFeedbackHubが出てくるのが鬱陶しいので削除

PowerShellで Get-AppxPackage Microsoft.WindowsFeedbackHub | Remove-AppxPackage

vcプロジェクトをコピってアーカイブ(Win)

1. 7zipをインストールしておく https://www.7-zip.org/ 2. 除外するファイルのリストを作っておく .git\ .bin\ .tmp\ .vs\ .orig .vcxproj.user 3. コピーしてアーカイブするbatを書く xcopy /S /E /H /R /Y /I /EXCLUDE:copyignore.txt mylib .tmp\mylib c…

VS2017ではunionの暗黙デフォルトコンストラクタは作られない

error C2280: 'hoge::hoge(void)': 削除された関数を参照しようとしています https://docs.microsoft.com/en-us/cpp/error-messages/compiler-errors-1/compiler-error-c2280?view=vs-2017#example-variant-and-volatile-members なるほどね

C++ Visual Studioビルド時スタイライズ&スタイルチェック

Visual Studio2017でclang-formatが使えるようになってた dungeonneko.hatenablog.com インストールするもの AStyle cpplint (要Python) AStyle Win版を落としてbinフォルダのAStyle.exeを適当な場所にコピー https://sourceforge.net/projects/astyle/files…

子プロセスもデバッグしてくれるVSプラグイン

Microsoft Child Process Debugging Power Tool - Visual Studio Marketplace

時代に逆らう人のためのregファイル

最近のWindows Updateが気にくわない Windows Registry Editor Version 5.00 // コマンドウインドウをここに開くを追加 [HKEY_CLASSES_ROOT\directory\background\shell\CommandPrompt] @="@shell32.dll,-8506" "Extended"="" "NoWorkingDirectory"="" [HKEY…

pip install PySide2

いつの間にかPySide2がpip installできるようになっているではありませんか

msbuild (Visual Studio) で並列ビルドが効かない場合

ビルドルールが違うものは並列に実行されないっぽい。例えば同じファイル名のcppが複数あるプロジェクトで出力オブジェクトファイル名を変更していたりするとこの問題にハマることがある。

非弾性衝突

const auto r = (r0 + r1) * 0.5f; // 反発係数 const auto m0 = 1.0f; // Aの質量 const auto m1 = 1.0f; // Bの質量 const auto u0 = n * dot(vel0, n); // 衝突面(法線N)に対しての垂直方向のAの速度 const auto u1 = n * dot(vel1, n); // 衝突面(法線N)…

C言語の線形合成法

http://c-faq.com/lib/rand.html

2D Perlin Noise in C++

こんな感じやろか? float interp(float x, float y, float t) { return x + (y - x) * t; // とりあえず線形 } float noise(int32_t x, int32_t y) { auto n = x + y * 57; n = (n << 13) ^ n; return (1.0f - ((n * (n * n * 15731 + 789221) + 1376312589…

カスタムビルドツールが毎回ビルドされる

出力ファイルにファイル名だけじゃなくパスも書くと大丈夫っぽい ソースと同じ場所に出力したいなら%(RelativeDir)hogeとか

実行中のプロセス計測 (Visual Studio)

デバッグ実行中の場合はデタッチしておく(これをしないとアタッチ/デタッチのメニューが選択できない) デバッグ -> プロファイラー -> パフォーマンス エクスプローラー -> アタッチ/デタッチ からプロセスを選択

今更PerfHUD ESでTegraのGLESデバッグ

面倒くさいけど先にUser Accountを作成しておく必要がある https://developer.nvidia.com/ んでここからPerfHUD ESをダウンロードしておく https://developer.nvidia.com/gameworksdownload Android Studio起動してTerminalから adb shell setprop debug.per…

PySide2 メモ

Qt for Python is coming to a computer near you https://blog.qt.io/blog/2018/04/13/qt-for-python-is-coming-to-a-computer-near-you/

glfwでRenderDoc使いたいとき

ここからダウンロード https://renderdoc.org/ コンテキスト作る前に glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, 1); しておくとキャプチャできると思うよ RenderDoc -> Lanch Application からキャプチャしたいexe起動すれば キャプチャできない原因とかも…

DirectX11 Efficient Buffer Management

未だに参照するけどスライド探すのに時間かかってしまうのでメモ http://gamedevs.org/uploads/efficient-buffer-management.pdf これは知っとけ的な API呼び出しは可能な限り減らす 16バイトアライメントする(最大30倍速度差が出る) D3D11Deviceはmutexを…

Qt ビルドする(GPL版)

リリースDLLのPDBが欲しかったのでビルドする ここを見れば大体わかる https://doc.qt.io/qt-5.6/windows-building.html わしの環境 Windows10やで Visual Studio 2015をインストールしているものとする とりあえず Qt5.10.1 Qtダウンロード Qtのホームペー…