https://www.gravatar.com/avatar/3c36d6726b341ff003490168e1897f84?s=240&d=mp

Urho-笔记

@@@@@ Urho 积累

TODO:

  • [ ] Graphics
    • [ ] 3D 渲染
  • [ ] Navigation
    • [ ] 路径导航
  • [ ] Engine 引擎主系统
    • [ ] Initialize():初始化 Engine 子系统对象(也是一个 Object)
  • [ ] 2D 组件
  • [ ] 容器
    • [ ] 基于 AllocatorNode
    • [ ] 常用容器的内部实现,控制大小和编译速度
    • [ ] 可研究实现

上下文

协作图

/ob/%E3%80%901%E3%80%91%E5%B7%A5%E4%BD%9C%E5%8C%BA/%E8%AE%A1%E7%AE%97%E6%9C%BA/%E6%B8%B8%E6%88%8F%E5%BC%80%E5%8F%91%E6%8A%80%E6%9C%AF/%E6%B8%B8%E6%88%8F%E5%BC%95%E6%93%8E/Urho/attachments/class_urho3_d_1_1_engine__coll__graph_org.svg

Godot-笔记

@@@@@@ 概述

所有游戏资源都是一个节点构成一个树形结构

场景也就是一个个类,本质是一个节点树

最终整个游戏也是一个节点树,包含多个实例化场景。

脚本动作通过信号(观察者模式)实现,和 QT 类似。

Shader

本质就是跑在 GPU 的程序

根据计算机图形学,渲染分为了很多阶段,Shader 是 GPU 开放可编程的渲染阶段

在 shader 程序中,代码逻辑是 GPU 渲染流水线中的一个部分,程序中有很多预定义好的全局变量来共享信息(比如当前顶点位置,当前顶点颜色等)

Nvidia工具

nvidia-smi 还有很多控制命令,可以拿来使用

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
nvidia-smi –l xxx
动态刷新信息(默认5s刷新一次),按Ctrl+C停止,可指定刷新频率,以秒为单位

nvidia-smi -L 列出所有可用的 NVIDIA 设备

nvidia-smi -pm 1 开启持久模式, 事实是: 持久模式下 性能反而能在 p8

sudo nvidia-smi -q -d POWER

sudo nvidia-smi drain -p 0000:01:00.0 -m 1 设置驱逐状态
sudo nvidia-smi drain -p 0000:01:00.0 -r 移除gpu
sudo nvidia-smi drain -p 0000:01:00.0 -d 发现移除的gpu
1
2
# 解决无头模式的设置使用
nvidia-settings --ctrl-display :0
1
2
3
4
5
6
7
8
9
nvidia-smi dmon –s xxx
指定显示哪些监控指标(默认为puc),其中:
p:电源使用情况和温度(pwr:功耗,temp:温度)
u:GPU使用率(sm:流处理器,mem:显存,enc:编码资源,dec:解码资源)
c:GPU处理器和GPU内存时钟频率(mclk:显存频率,pclk:处理器频率)
v:电源和热力异常
m:FB内存和Bar1内存
e:ECC错误和PCIe重显错误个数
t:PCIe读写带宽

D3 电源状态

QT 经验积累

要积累经典 GUI 的概念 (如工具栏菜单栏的区别, 工具栏按钮的使用方式)
这样才能复用这些设计, 并且界面库本身也是按照这种思路来的.

这些设计都是考虑过人机交互的, 可能本身是从过去人们的使用习惯而来的. 没有特殊需求不需要特意去思考.