工作中学习收集的一些知识还有解决问题的方法,一般是些小技巧来不及总结的那种,仅用于自己查阅!
/**********************************************************************************************************************************/
原创作品,转载时请务必以超链接形式标明文章原始出处:http://blog.csdn.net/gqb666/article/details/8819772,作者:gqb666
/**********************************************************************************************************************************/
1.图形学流水线:
顶点->顶点变换- >片源组装->裁剪->插值->像素操作->stencil test ->depth test ->alpha test->alpha 混合
顶点着色器->插值->图元组装光栅化或者几何着色器->片段着色器->裁剪测试->多重采样->模板测试->深度测试->混合->抖动->遮罩输出
不对,比如你用三角形面片逼近一个球,如果你指定一个三角形每个顶点法向量都一样的话,加上光以后你会发现这个球是不光滑的。因为实际得到的是一个多面体而不是一个球。但如果你根据每个顶点在球面上的坐标计算该顶点实际的法方向(是球面的法方向)的话,得到的球就会光滑得多了。
换句话说,其实顶点法向量是根据原先的曲面算出来的,而不是根据近似以后的三角形面片算出来的。
关于根据曲面方程计算上面任意一点法向量的问题,可以参考任意一本高等数学书。
如果不知道曲面的解析方程的话,也不妨用平面法向量代替曲面法向量,不过光滑程度差一点。
图形硬件技术:
2. tile based rendering
3. h-z
4.early z
在不生成像素的情况下增加图像像素大小的一种方法,在周围像素色彩的基础上用数学公式计算丢失像素的色彩。有些相机使用插值,人为地增加图像的分辨系。
你把那个透视矩阵乘以一个x,y,z,w就等于z
w就是乘以透视矩阵后的w值
fbo
shadow map
shadow volume
stencil buffer
Deferedshading
skining
water
2. 测试framebuffer
先cat /dev/fb0 >a.dat生成一个不就行了?以后就拿这个a.dat测试
3.shell脚本相关
shell脚本中${#0}表示第0个参数的长度,也就是命令的长度,${#1}表示第一个参数的长度。举例:
./sub_str.sh hello 2 3
刚${#0}=12 ${#1}=5${#2}=1 ${#3}=1
4.valgrind
内核态调试神器:valgrind
内存使用检测,包括:
–内存泄漏
–非法内存访问
–未初始化变量使用
–重复释放内存
•多线程竞争
–检测死锁
-检测竞争
将这个CPU_CFG_INT_DIS_MEAS_EN 关掉,去掉进出中断时统计开关中断的时间,以减少进出临界区的时间。果然解决了问题!
派生类的继承方式 默认的派生方式说明为private,各种继承的特点如下: 1。私有继承:私有继承的特点是基类中的公有成员和保护成员作为派生类中的私有成员,不能够被派生类的子类所访问。在私有继承方式下,基类中的公有成员和保护成员只能够被直接派生类访问,不能够由派生类的子类再继承。 2。公有继承:公有继承的特点是基类中的公有成员和保护成员作为派生类中的公有成员和保护成员,但基类中的私有成员仍然是私有的(不可继承)。在公有继承方式下,基类成员的访问权限在派生类中保持不变,公有派生类的对象可以访问基类中的公有成员和保护成员;派生类的成员函数可以访问基类中的公有成员和保护成员。 3保护继承:特点是基类中的公有成员和保护成员都作为派生类中的保护成员,基类中私有成员仍然是私有的。 各种继承方式的保护属性 父类成员属性 公有继承 保护继承 私有继承 private 不可继承 不可继承 不可继承 proteceted proteceted private private public public proteceted private 构造函数静态成员友员关系 不可继承 不可继承 不可继承
16bitSDRAM接法如下图:
Ubuntu下编译AndroidNDK项目报arm-linux-androideabi-gcc:命令未找到
NDK-BUILD失败,错误提示:
make: ~/dev/android/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: 命令未找到
找了半天,在网上终于找到个解决办法
step1:
sudo apt-get install libc6-dev-i386
step2:
sudo apt-get install ia32-libs
VIM 学习笔记
http://www.360doc.com/content/10/1128/15/4807202_73143894.shtml
nividia
http://www.nvidia.com/object/cube_map_ogl_tutorial.html
arch is for architecture: arm, mips, x86, i686...
vendor is tool chain supplier: apple,
os is for operating system: linux, none (bare metal)
abi is for application binary interface convention: eabi, gnueabi, gnueabihf
For your question, arm-none-linux-gnueabi and arm-linux-gnueabi is same thing. arm-linux-gcc is actually binary for gcc which produces objects for ARM architecture to be run on Linux with default configuration (abi) provided by toolchain.
出现文件系统错误:
在修复模式下重新挂载一下“/” mount -o remount,rw / 就可以了
修改这个文件etc/sysconfig/network这个文件里的主机名. NETWORKING=yes HOSTNAME=主机名 ------------------------------------------------------------------------ 记得重启!!! ------------------------------------------------------------------------ 完整: 第一步: #hostname oratest 第二步: 修改/etc/sysconfig/network中的hostname 第三步: 修改/etc/hosts文件
GPU架构
http://www.opengpu.org/bbs/forum.php?mod=viewthread&tid=2993
总结一点:虚拟机中Linux中minicom里COM1、COM2…对应tty0、tty1而kermit里面对应ttyS0、ttyS1……。
嵌入式系统中cgi向lighttpd服务器上传文件遇到内存不足的解决方法:
cgic.c里面的(第一行有效代码)
#define cgicTempDir "/dev/shm"
lighttpd.conf里面的(最后一行)
server.upload-dirs=("/dev/shm")
Telnet root用户的登入
Telnet 不是很安全,默认的情况之下不允许 root 以 telnet 进入 Linux 主机 。若要允许root用
户登入,可用下列方法:
(1)[root @echo /root]# vi /etc/pam.d/login
#auth required pam_securetty.so #将这一行加上注释!
或[root@echo root]# mv /etc/securetty /etc/securetty.bak
(2)编辑/etc/securetty 文件,加上下面几行:
pts/0
pts/1
pts/2
pts/3
测试root用户直接telnet登陆成功,这样, root 就可以直接进入 Linux 主机了。不过,建议不要这样做。也可以在普通用户进入后,切换到root用户,拥有root的权限。
linux上就有开源软件做到这点,叫valgrind,直接在运行环境配上这个东西,什么内存崩溃、溢出、泄露通通给你找出来。
对于嵌入式开发者,更方便的方式就是看崩溃的内存,通过addr2line来debug,不过要求开发者对内存有非常深刻的认识。