GLM常见使用接口

GLM常用函数解释说明

GLM默认使用右手坐标系,如果要改成默认左手坐标系,使用:

1
GLM_FORCE_LEFT_HANDED

<glm/trigonometric.hpp>
GLM_FUNC_DECL GLM_CONSTEXPR vec< L, T, Q > radians (vec< L, T, Q > const &degrees)
将角度转化为弧度。

<glm/gtx/transform.hpp>
GLM_FUNC_DECL mat< 4, 4, T, Q > rotate (T angle, vec< 3, T, Q > const &v)
使用一个用弧度(radians)表示的角度(degrees),以及一个用3个标量(scalar)表示的坐标(axis),来构建一个4X4的旋转矩阵(rotate matrix)。

<glm/gtc/matrix_transform.hpp>
GLM_FUNC_DECL mat<4, 4, T, Q> lookAt (vec<3, T, Q> const &eye, vec<3, T, Q> const &center, vec<3, T, Q> const &up)
基于默认的偏手坐标系来构建一个给定视图矩阵(view matrix)的视角(look)

GLM_FUNC_DECL mat<4, 4, T, defaultp> perspective (T fovy, T aspect, T near, T far)
为一个对称透视图截锥(symmetric perspective-view frustum)创建矩阵,基于默认的偏手坐标系和默认的近剪裁面距离、远剪裁面距离

参数说明:

fovy 相机视角宽度
aspect 长宽比率
near 近面裁剪距离
far 远面裁剪距离
如果要修改默认的近/远剪裁面,使用:

GLM_FORCE_DEPTH_ZERO_TO_ONE

下载镜像文件并烧录到tf卡

win32diskimager
把下载的镜像通过这个工具烧录到tf卡中
这里唯一要注意的是如果有多个U盘设备 要正确选择好

启动树莓派

  1. 插入tf卡 把电脑的网线插入树莓派的网线口(装好openwrt的树莓派相当于一个路由器)
  2. 插电 等待与20-30秒
  3. 正常情况下电脑会被分配一个192.168.1.X的IP地址 此时树莓派的网络地址是192.168.1.1 如果没成功检查是否存在网络IP段的冲突问题或者本级的DHCP等网络问题
  4. 默认的ssh地址是root@192.168.1.1 端口是22 没有密码

让树莓派连接外网

树莓派有一个集成的wifi和一个网络端口 默认情况下wifi的配置是ap热点并且处于关闭(系统第一次启动不插网线应该是打开状态)
因此要想让树莓派能连外网并且可以连ssh 至少有一个网卡连我们的电脑 另外一个网卡连外网路由器
这里使用的方法是先通过网线连接树莓派 然后开启wireless并且设置为sta客户端模式连外网

修改/etc/config/network 添加Wwan

1
2
config interface 'Wwan'
option proto 'dhcp'

修改后如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'

config globals 'globals'
option ula_prefix 'fdd5:579e:a386::/48'

config interface 'lan'
option type 'bridge'
option ifname 'eth0'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
option ip6assign '60'
config interface 'Wwan'
option proto 'dhcp'

修改/etc/config/wireless
默认为AP热点:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
config wifi-device 'radio0'
option type 'mac80211'
option channel '11'
option hwmode '11g'
option path 'platform/soc/3f300000.mmcnr/mmc_host/mmc1/mmc1:0001/mmc1:0001:1'
option htmode 'HT20'
option disabled '0'

config wifi-iface 'default_radio0'
option device 'radio0'
option network 'lan'
option mode 'ap'
option ssid 'OpenWrt'
option encryption 'none'

修改为STA连接我们的wifi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
config wifi-device 'radio0'
option type 'mac80211'
option channel '11'
option hwmode '11g'
option path 'platform/soc/3f300000.mmcnr/mmc_host/mmc1/mmc1:0001/mmc1:0001:1'
option htmode 'HT20'
option disabled '0'

config wifi-iface 'default_radio0'
option device 'radio0'
option network 'Wwan'
option mode 'sta'
option ssid 'SUMMER'
option encryption 'psk2'
option key '1234512345'

执行/etc/init.d/network restart重启网络服务

通过路由器的管理页面此时应当发现连接上了路由器
如果这一步存在问题 可以先设置disable ‘0’在不该AP mod类型的情况下看看作为ap热点模式是否能正常搜索到
ssh登录后尝试ping一下看看是否能正常连网

让树莓派作为软路由

和上面不同 这个是用网线连接外网 ap热点保留
先用网线连接树莓派 修改wireless的disable为0 重启网络服务

需要重启树莓派
network

1
2
3
4
5
6
7
8
9
10
11

config interface 'lan'
option ifname 'wlan0'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
option ip6assign '60'

config interface 'wan'
option ifname 'eth0'
option proto 'dhcp'

wireless

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
config wifi-device 'radio0'
option type 'mac80211'
option channel '11'
option hwmode '11g'
option path 'platform/soc/3f300000.mmcnr/mmc_host/mmc1/mmc1:0001/mmc1:0001:1'
option htmode 'HT20'
option disabled '0'

config wifi-iface 'default_radio0'
option device 'radio0'
option network 'lan'
option mode 'ap'
option ssid 'SUMMER_RPI'
option encryption 'psk2'
option key 'aaaaaaaaaa'

更新opkg

1
opkg update

此时可以通过opkg list查看所有支持的包
手动安装可以opkg install 命令
这里推荐先安装luci web管理服务

安装luci包和fdisk包

1
2
pokg install luci  
opkg install luci-theme-bootstrap

进入后台页面http://192.168.1.1/
账号root 密码空
设置主题为bootstrap

1
opkg install fdisk

安装完毕此时应该改还剩余80M空间
可以通过df -h命令查看

挂载剩余tf卡空间

通过命令fdisk -l查看当前TF卡的挂载情况
对空闲硬盘进行分区

1
fdisk /dev/mmcblk0

安装kcp

1
opkg install kcptun-client

编辑/etc/config/kcptun 进行配置
删除多余参数,修改关键option, 注意启用

1
2
3
4
5
6
7
config client
option disabled 0
option bind_address '0.0.0.0'
option local_port 12948
option server '4.2.4.73'
option server_port 18224
option mode 'fast2'

安装ss

使用luci后台或者opkg安装:

1
opkg install shadowsocks-libev-ss-local shadowsocks-libev-ss-rules shadowsocks-libev-ss-redir shadowsocks-libev-ss-tunnel shadowsocks-libev-config iptables-mod-conntrack-extra luci-app-shadowsocks-libev

shadowsocks-libev-ss-local
shadowsocks-libev-ss-rules
shadowsocks-libev-ss-redir
shadowsocks-libev-ss-tunnel
shadowsocks-libev-config
iptables-mod-conntrack-extra
luci-app-shadowsocks-libev

  1. 在luci后台的Service下面的Shadowsocks下填写remote server信息为本地kcp监听端口
  2. 在local instances下启用ss local 端口1080 (点击disable按钮)

此时启动了一个1080的ss端口连接服务器 (socks5端口)

点击Save&Apply进行保存

然后在本地电脑上使用chrome+switchyOmega新建一个socks5代理连接youtube进行测试 .

透明代理转发

启用Local Instances ss_redir.hi 启用Redir Rules并更改Local-out default为forward

可能问题
检查IP转发
cat /proc/sys/net/ipv4/ip_forward
若为0
echo ‘net.ipv4.ip_forward = 1’ >> /etc/sysctl.conf
sysctl -p

可能问题 DNS污染
需要开启resole固定
以及转发
https://wangchujiang.com/linux-command/c/iptables.html
https://gist.github.com/wen-long/8644243

wifi 5G时区问题

可能导致找不到wifi信号或者连上去后很快断开

修改/etc/config/system

1
2
3
config system
option timezone 'CST-8'
option zonename 'Asia/Shanghai'

修改/etc/config/wireless

1
option country 'CN'

中国开放的5G频道为
36, 40, 44, 48, 52, 56, 60, 64, 149,153, 157, 161, 165

opkg安装iw iwinfo命令

通过iwinfo wlan0 *** 可以查看无线网卡的当前信息 以及支持的信号强度 模式等

例如通过iwinfo wlan0 htmodelist可以查看支持的htmode
例如通过iwinfo wlan0 freqlist可以查看支持的频段

通过iw list查看设备支持的工作模式
iw wlan0 info
iw phy0 info

iw reg get 获取频段和信道宽度

补充信息

https://openwrt.org/docs/guide-user/network/wifi/basic#htmodethe_wi-fi_channel_width

HT20 High Throughput 20MHz, 802.11n
HT40 High Throughput 40MHz, 802.11n
HT40- High Throughput 40MHz, 802.11n, control channel is bellow extension channel.
HT40+ High Throughput 40MHz, 802.11n, control channel is above extension channel.
VHT20 Very High Throughput 20MHz, Supported by 802.11ac
VHT40 Very High Throughput 40MHz, Supported by 802.11ac
VHT80 Very High Throughput 80MHz, Supported by 802.11ac
VHT160 Very High Throughput 160MHz, Supported by 802.11ac
NOHT disables 11n

可能得组合

1
2
3
4
config	wifi-device		'radio0'
option channel '104'
option hwmode '11a'
option htmode 'HT20'
1
2
3
4
config	wifi-device		'radio0'
option channel '7'
option hwmode '11ng'
option htmode 'HT40+'
1
2
3
4
config	wifi-device		'radio0'
option channel '36'
option hwmode '11na'
option htmode 'HT40+'

快照版本问题

如果安装的是快照版本 会有以下几个问题:

  1. 没有luci 需要手动安装
  2. 快照版本为自动构建且软件源对应自动构建的构建版号 导致一旦下个快照产生(通常几个小时?)就会导致软件源无法正常使用

快照版本的好处是可以刷完TF卡后直接启动而不需要任何引导步骤(通常至少需要一个USB键盘和HDMI+显示器)