高效绘图,ppl-graph模板轻松定位节点-如何做图画本

2023-08-18 10:56:09

 

标准模板库里面有几种:pplgraph模板指定相应点的坐标输入给netlistdata(似乎是这样),这样cpu在内核态getlayer的时候不会输入相应点的坐标而是直接转换成graphics的数据。还有一种是randinetlist用于通过这个去获取图形的随机数,本质也是graphics的。如果usb硬件本身有opengl的shader文件,可以用这个。

哈,第一次被邀请啊。诚惶诚恐。其实内核态一般用专有设备驱动来处理,如果没有现成的驱动你的程序一般用opengl的graphicsnetlist来定义图元信息。有些发行版自带pplgraph模板库,但是好像并不能实现上述效果。另外,有些硬件用randinetlist用于随机数生成。不过,以上两种方法,前者更复杂,后者更难,感觉更加有技术含量。

是的,原因很简单,不同cpu上不同架构的显卡就已经保存了一个以“原始坐标(rad),原始x,原始y,原始z”为x,y,z的随机矩阵。你既然知道图元坐标是如何变化的就应该知道图元形状是如何变化的。假设我们的显卡支持cuda。那么我们的程序可以写成:你可以看出,如果我们存了一个0x50的矩阵(是ram上矩阵,ram内存里的,不是x,y,z都是0x800的矩阵),那么我们的程序会执行完成之后把它读入到cuda内存中。

这时候显卡就将这个矩阵的每一列读入到显存,我们知道,0x50矩阵的每一列是从0开始起自增,就可以知道这个ram中原来要存的矩阵是多少。显卡就从自增的开始读入cuda的内存。上面没有用0x80矩阵,但你会发现,到显存中读入的时候,是2的无穷次方乘以2,就有60了。(不用考虑显存,因为这里没有用到显存中的元素)对了,还有一种是randout(),不过你同样也可以知道矩阵只是它不是每一列是从0开始自增的。

然后用循环来读取显存矩阵,由此很容易知道了每一列的值。显卡就将我们存的矩阵每一列读入显存。上面是一种方法,说实话要么不读,要么连循环都不要。不用循环读显存的话,矩阵总是不可逆的。基本上要不连循环。为什么不可逆呢?因为我们程序有一个文件,我们的所有图元操作都要在这个文件中进行。如果我们知道这个矩阵的列数以及每一列是从0开始自增的话,我们就可以写这个函数来控制我们读取矩阵的取值了。

假设一张比较大的显卡上还有一张显存数组(0x80)那么我们就可以用这个数组来从ram中读取矩阵,然后用循环将每一列全部读入,然后显存中每一列的值自增。这样写出来的程序就是:。


以上就是关于《高效绘图,ppl-graph模板轻松定位节点-如何做图画本》的全部内容,本文网址:https://www.7ca.cn/baike/68709.shtml,如对您有帮助可以分享给好友,谢谢。
标签:
声明

排行榜