ぷるぷるの雑記

低レイヤーがんばるぞいなブログ. 記事のご利用は自己責任で.

2022-01-01から1年間の記事一覧

Blenderで頂点の位置を数値で指定する

移動距離を数値で指定 Edit Mode にする 頂点を1つ以上選択する Gキーを押す 左クリック Moveのオペレータパネルを表示する 数値を指定する 座標を数値で指定 Edit Modeにする 頂点を1つあるいは2つ以上選択する Nキーを押してTransformパネルを表示する 数…

Arduino IDE でビルドとアップロード中のメッセージを表示する

File -> Preferences -> Settings -> Show verbose output during にチェックを入れればよい. IDEのバージョンによって見た目は若干違うが、設定の仕方は同じ. File->Preferences を選択 Show verbose output during の項目をチェック

Blenderのメモリ使用量を抑える

Blenderでアニメーションの作成中、アニメーションを再生するたびにメモリの使用量がえぐいほど増える現象に出くわしました. Blenderってそういうものだからと言われたらおしまいなのですが、なんとかしたいですよね. やりなおし(Undo)の設定をいじると操作…

C++でハンドラをシンプルに書きたい

C++でデスクトップアプリケーションを書いているとイベントハンドラ(メッセージハンドラ)を書くことになると思います. ボタンをクリックしたら何かを実行するくらいであれば問題ないですが、右クリック中にマウスを動かしたときはAという動き、マウスホイ…

MFCで他プロセスのウィンドウにメッセージを送る方法

はじめに MFCアプリケーションで他プロセスのメインウィンドウにメッセージを送ってみましょう. 送信用のプログラムではSendMessage()またはPostMessage()を使います. 受信用のプログラムではPreTranslateMessage()を使います. MFCでもWndProcをオーバーライ…

プログラミングでは一般的すぎる名前を使わない方が良い

タイトルの通り、プログラミングにおいて一般的すぎる名前をファイル名やクラス名にすると痛い目に合うかもしれません. 自分が経験した例を2つ紹介します. PHPの例 Windows(xampp)において、index.phpから同ディレクトリ中のtable.phpというファイルをrequir…

LNK4098 defaultlib 'MSVCRTD' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。の解決方法

Visual Studio 2017で外部ライブラリをNuGetしたプロジェクトでビルドする際に「LNK4098 defaultlib 'MSVCRTD' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。」が発生した. 公式リファレンスによれば、互換性のない…

';'が'*'の前にありませんの解決方法

Visual Studio でC++のプロジェクトをビルド中、「構文エラー: ';'が'*'の前にありません。」というエラーが出たときの対処法のメモ. まずは文法的な間違いがないかを確認. どこかしらで括弧やセミコロンが抜けていればそこを修正すれば解決するかも. しかし…

gl.h included before glew.h の解決方法

Visual Studio 2017 でOpenGLを使ったアプリケーションを作成中 gl.h included before glew.h というエラーが出た. 原因はメッセージのままなのだが、gl.hがどこにあるのかわからない場合具体的な解決方法は次のようになる. gl.hを含んでそうな適当なヘッダ…

MFCについてのメモ

MFC(Microsoft Foundation Class)についての知見がまとまってきたので、メモを残しておく. 主観や間違いが多分に含まれていると思うので、話半分に見てください. MFCとは 参考 MFCとイベントドリブン 参考 MFCの命名規則 参考 MSG構造体とメッセージ 参考 MF…

MFCでOpenGLをつかう -その1-

MFC

2022年にやることではないとは思いますが、仕事の勉強がてらMFCを使ったグラフィカルなアプリケーションを作りたくなりました. そこでOpenGLを使用したMFCアプリケーションを作ります. なお、MFCは書籍等も中古でしか見当たらないほど過去のものであり、特別…

ヘッダファイルの役割

今まで見てきたことがあるパターンを書き出してみた. 関数のプロトタイプ宣言 おそらく一番オーソドックスな使い方. 関数本体が書いてあるオブジェクトファイルor静的ライブラリor動的ライブラリがあるはず. ヘッダーとオブジェクトファイルが一対一対応とは…

Windows.hとafxwin.hの場所

C:\Program Files(x86)以下で検索すれば簡単に見つかるが、たまに知りたくなるのでメモを残しておく. 比較的古い場合(少なくともVS6) ヘッダー名 場所 windows.h C:\Program Files(x86)\Microsoft SDKs\Windows\v.70A\include afxwin.h C:\Program Files(x86…

Arduino UNO R3 の 素子 まとめ

Arduino UNO R3 の実物を回路図と照らし合わせてみました. といっても電子回路はからっきしなので、主要な素子だけのまとめになります. 型番は一部省略してるのであしからず. Arduino UNO R3 の IC (+α) パッケージ上の表記 回路図上の表記 説明 1117M3... N…

ASCIIコードにも種類がある?

バイナリエディタのASCIIコードの欄を見ていて不思議に思うことがあったので、その際に調べたことについてのメモ. ASCIIコードと拡張ASCIIコードとは ASCIIコードは7bit(0x00~0x7F)を使って数字やアルファベットなどを表しますが、0x80~0xFFの値に対応した文…

Uncaught SyntaxError: Unexpected token < in JSON at position 0の解決方法

javascriptのfetchAPIでphpプログラムと通信すると以下のようなエラーが出てくる時があります. Uncaught SyntaxError: Unexpected token < in JSON at position 0 「<」の部分は場合によっては異なる文字だったりしますが、たいてい1文字です. このエラーはj…

pngファイルの種類を右クリックから判別する方法

いきなりですがpngファイルと言っても何種類かあるのですね.ImageMagickに入っているidentifyコマンドを利用すればどの種類のpngファイルなのか区別できるということですが、いちいちプロンプトを開いてコマンドを打つのも面倒なので、右クリックのメニュー…

cssについてメモ

cssで何度も調べてしまうことをメモに残しておきます. 完全に自分用のメモなので変なことを書いてるかもしれないです. display その要素をブロック要素とインライン要素のどちらとして扱うか、および子要素をどのようにレイアウトするかということを指定しま…

Blenderでガラスを表現する - アルファブレンディングの設定 -

Blenderでガラスの容器を作っているときにガラスの中身を表示するときに少し戸惑ったのでその時のメモ. ガラスのマテリアル まず「Blender ガラス マテリアル」で検索をかけPrincipled BSDF でガラスを表現する方法を探しましょう. light11.hatenadiary.com …

雑記1

思いっきりプログラムを書くぞーっと意気揚々にGWに入ったのに何もせずにGWが終わってしまいました. こうすればよかったなーと思うことが2つあります 時間を目標にせずに、その日ごとに具体的な目標を立てるべきだった GWには普段できないこと、やらないこと…

Unityで鏡面反射成分を入れるとなぜか黒くなる

UnityでBlinn-Phongの陰影付モデルを自分で実装したところ予期しないところが黒くなるという現象に出くわしました. その時に試したことのメモ. 実際のコードと実行結果 実際のコードは次になります. 拡散反射光と鏡面反射光を考慮しています. // リスト1 Sha…

UnityでTerrain用Brushをインポートする

Terrain(地形)を編集するときに使うBrushですが、思いのほか簡単に自作できたのでその時のメモ. 1. Terrainを作成する 3D Object->TerrainからTerrainを作成する 2. 画像をインポート Brushのもととなる画像(テクスチャ)をインポートします. 専用のフォ…

Unityでディスプレイスメントシェーダーを実装する

タイトルの通りUnityでディスプレイスメントシェーダーを実装しました. シェーダースクリプト Shader "Custom/Displace" { Properties { _MainTex ("Texture", 2D) = "white" {} _DisplaceMap ("DisplaceMap", 2D) = "white" {} _OffsetStrength("OffsetStre…

Blenderで調べたことのメモ- その2 -

ループ選択 Ctrl + Alt + 左クリック NormalノードとTangentノード どちらも法線の情報を入力することには変わりないが、Normalノードにはオブジェクトスペースでの法線ベクトルを入力し、Tangentノードには接ベクトル空間での法線ベクトルを入力する。 オブ…

Blenderで調べたことのメモ- その1 -

自分用のメモ兼リンク集みたいな感じ. UV展開 一般的には画像の位置を決める作業といわれるが、おそらくは逆で頂点属性のうちテクスチャ座標を決めるという作業(だと思う)。 したがってUnityに3Dモデルを持ってきたときにうまくテクスチャが反映されていな…

WebGL2の基礎を理解する

三角形を描画するスクリプトを通してWebGL2の基礎を理解しましょう。 はじめに WebGL2とはざっくりいうとJavaScriptからOpenGLの機能を利用することができるJavaScriptAPIです. ブラウザの機能なのでプラグインなどが必要なく、既存のOpenGLのコードをかなり…

自分的VSコード便利機能まとめ

すべて覚えるのは無理なので、とりあえず自分がよく使うもののメモ。適宜更新するかも。 基礎編 VSCode自体のショートカットというより、Windowsのショートカットが多い ショートカット 説明 Ctrl + S ファイル上書き保存 Ctrl + Shift + S ファイルを新規保…

Node.jsでAPIを写経したときのメモ

以前Node.jsを入れたので、何か書いてみたいと思いAPIを書きたくなりました。 prupru-prune.hatenablog.com 検索してみるととても参考になる記事が見つかりました。 qiita.com この記事内のコードを写経してAPIやNoSQL何たるを幾何か理解できました。その過…

javascriptのイベントをスクリプトから発火する

クリックイベントを発火するスクリプト 下のコードはクリックイベントリスナーを登録したのち、スクリプトからクリックイベントを発火するコードです。 <body> <button id="btn">click here</button> <script> let target = document.getElementById('btn'); window.onload=()=>{ let evnt = new Eve</body>…

ttyrecとttygifの使い方

実行環境 項目 バージョン OS Ubuntu 20.04 LTS インストール $ sudo apt update $ sudo apt install ttyrec ttygif xdotool ttyrecをインストールするとttyplayもインストールされる 使用方法 録画、録画停止 $ export WINDOWID=$(xdotool getwindowfocus) …