/images/avatar.jpg

wsl2 install CUDA

驱动

网上有许多资料写道需要安装针对WSL特别驱动,但是现在已经不需要这么做了,只需要到NVIDIA官网将驱动升级到最新版本即可。根据参考资料描述,驱动类型最好选择Game Ready版本而不是studio版本。
/images/nvidia_download.jpg 注意,该是安装Windows驱动,而不是安装Linux驱动,在Windows下安装驱动后,会自动将驱动以_libcuda.so_的形式集成至WSL2中,因此切勿在WSL Linux中重复安装驱动

Hyper-V做port forwarding

创建 NAT 虚拟网络

要用到一些PowerShell命令

1
2
3
4
5
New-VMSwitch -SwitchName "new" -SwitchType Internal

New-NetIPAddress -IPAddress 192.168.0.1 -PrefixLength 24 -InterfaceAlias "vEthernet (new)"

New-NetNat -Name MyNATnetwork -InternalIPInterfaceAddressPrefix 192.168.0.0/24

New-VMSwitch 新建了一个内部的交换机
New-NetIPAddress 设置了网卡的ip
New-NetNat 设定了子网

Blender常用操作

/images/logo-blender.png

查看顶点/面法向量

左上角下拉框选择编辑模式,在右边3个Tab中选择面模式 /images/blender_op1.jpg
然后点overlays下拉箭头,就能看到normal的选项了
/images/blender_op2.jpg
第一个Tab就是顶点法向,第三个Tab就是面法向。

WebGL Shader

顶点着色器

vertex.glsl

1
2
3
4
5
6
7
8
9
varying vec3 vPosition;

void main() {
    vPosition = position;
    // MVP
    vec4 modelViewPosition = modelViewMatrix * vec4( position, 1.0 );
    vec4 projectedPosition = projectionMatrix * modelViewPosition;
    gl_Position = projectedPosition;
}
片段着色器

fragment.glsl

1
2
3
4
5
varying vec3 vPosition;

void main() {
    gl_FragColor = vec4(vPosition, 1);
}

效果

用了PlaneGeometry

1
2
3
4
5
6
// meshes
const geometry = new THREE.PlaneGeometry(2, 2)
const material = new THREE.ShaderMaterial({
  vertexShader: vertexShader,
  fragmentShader: fragmentShader,
})

/images/shader-1.png

OpenGL中旋转矩阵

旋转矩阵

首先要说明的是,左右手旋转矩阵是不一样的,DirectX中是左手坐标系,而OpenGL用的是右手坐标系,这里给出的旋转矩阵也是基于右手坐标系的