原创 ubuntu14.04+opencv2.4.x 的PTAM配置

PTAM 是visualSLAM的一種算法,不同於SLAM的實現,它將攝像機跟蹤和地圖構建分離,僅使用初始地圖構建及借用bundle的實現來實現每增添一個新的場景,便實時計算攝像機的位置。這一算法,爲AR領域帶來的革新,使AR真正進入

原创 虛擬現實:UI: CrossApp的嘗試

一 首先講一下, Android端 GLSurfaceView的渲染機制         CrossApp是基於Cocos2d-x引擎的,    而Cocos2d-x是完全基於 OpenGL的 。          一般基於OpenGL的

原创 Learn OpenGLES: 正交變換

上一節中,我們遺留了一個Android適配的問題。 這個問題表現爲我們創建的物體長寬比例如果與屏幕寬高比不一致的畫,會被屏幕拉伸。  爲什麼會拉伸?  首先我們來認識齊次座標  , 這個就是一個齊次座標, 其中x, y, z 分別表示世

原创 Learn OpenGLES: HelloWorld

一直沒有寫博客,一來平時學習做筆記,犯不着寫博客;二來,一直未想好未來在哪一方面積澱技術;三來,讀書少,也不好意思寫博客。 寫博客,對於程序員來說是有好處的,它在清晰化思維的同時能夠彌補思維的漏洞。 同時,每一個筆客都是在構建自己的虛

原创 Learn OpenGLES:顏色漸變

這一貼,是繼上一貼的補充。主要介紹,Shader的頂點屬性數組(即頂點有多個屬性)的情況,以及Shader是如何對頂點渲染顏色的。 我們將以簡單的 長方形爲例, 並在最後討論當手機橫豎屏時,長方形顯示適配的問題。 在上一節中,我們講

原创 Learn OpenGLES:畫三角形

上一貼我們簡單的搭建了一個OpenGL的運行窗口,也簡單的對這個窗口進行繪製。  這一貼,我們將介紹OpenGL如何將CPU中的內存數據送到GPU的內存中,Shader又是如何找到這些數據,並進行繪製的。 我們將通過繪製三角形這一簡單的例

原创 Urho3D引擎:初識

Urho3D引擎,關注很久了,之前一直在學習OpenGL。有了OpenGL一定基礎後,也是時間好好看看引擎:讓OpenGL和編程有一個很好的補充。 在Urho3D的衆多Demo都是通過Sample這個類來進行拓展工作的,Sample其實

原创 3D引擎:Horde3D的 Resource類

Horde3D中 Resource類 和 Scene類時 兩大主要的類。 在形式上,這兩個類有許多共同點。這裏主要講 Resource類。 Resource主要負責加載我們需要的資源,如 執行的渲染流程, 模型,Texture,Sha

原创 Win10 + cygwin64 + ndk 配置ijkplayer android

最近,在開發時,正好遇到了如何在Windows上安裝ijkplayer的問題。 ijkplayer是完全基於FFmpeg的  參考這兩篇編譯安裝ffmpeg的文章,也許對我們有一些幫助: https://sourceforge.net/

原创 3D引擎:Horde3D:Shader類裏的 結構體,以及渲染一個 Logo的簡單流程(三)

首先是 ShaderCombination結構體 參數有: 1  uint32          combMask       這個變量主要用來  表示#define的位,每一位表示一個 #define如在 shader文件中 有這樣

原创 3D引擎:Horde3D:窗口類API:glfw

Horde3D是基於 opengl的 次世代,輕量級渲染引擎。 glfw 這個開源庫是一個很好便捷 opengl創建窗口的庫, 它創建一個 opengl 上下文的窗口,並可以接收窗口輸入事件 關於 glfw 創建窗口的demo,可以參考

原创 3D引擎:Horde3D:讀取Shader文件流程(二)

首先,根據[[ ]]來判斷 FX, VS_*, FS_*部分 然後,將FX部分給 fxCode字符串, VS_*, FS_*分別交給 CodeResource 並依次存放在 _codeSections vector中。 之後,

原创 學習ShaderToy第一天: glsl語言內置函數gl_FragCoord

運行環境:Android opengl es版本: 2.0 3D引擎庫 : Rajawali3D ShaderToy上用的shader語言 爲glsl , 效果是用webgl跑的,而webgl封裝了opengl es,  所以Sh

原创 Modern OpenGL ES: ndk編程——畫一個三角形之創建EGL窗口

上一節我們 知道了如何用ndk 來創建一個 Activity 這一節,我們來創建 GL 的窗口 上一節已經知道, Khronos Group 爲我們提供了 EGL API 來幫助我們創建 窗口,同步窗口繪製,管理窗口渲染。 1 與窗口系

原创 Modern OpenGL ES: ndk編程——畫一個三角形之Shader工程

OpenGL ES2.0以後,想畫一個東西必須使用 shader來完成。  而使用shader需要創建shader工程。使用shader來畫一個東西的大體步驟如下: 1 創建和編譯shader  2 創建和鏈接shader工程 3 爲sh