工作中學習收集的一些知識還有解決問題的方法,一般是些小技巧來不及總結的那種,僅用於自己查閱!
/**********************************************************************************************************************************/
原創作品,轉載時請務必以超鏈接形式標明文章原始出處: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,不過要求開發者對內存有非常深刻的認識。