Introduction to OpenGL (1)

Slides:



Advertisements
Similar presentations
第 3 章操作系统基础 3.1 操作系统概述 3.2 操作系统的功能模块 3.3 典型操作系统概述.
Advertisements

案例 某日,小强的妈妈带着 7 岁的小强去医院。妈妈说老 师多次反映小强容易发脾气,注意力难以集中、学习 成绩不好。妈妈说他从小就好动,容易分神。她同时 说最近小强经常感到肚子痛和便秘。她曾经买药给他 吃,但没有效果。 小强和姐姐、妈妈住在郊区外公外婆家。他爸爸是公 司司机。妈妈和外公都在一家蓄电池厂工作,小强和.
你愛美食嗎? 很多人都有這種體會,在廚房熱火朝天忙活了好一陣,好不容易美味佳餚端上桌,卻絲毫沒了胃口。難道真的是像大家開玩笑說的,都是在做飯時“偷吃”飽啦?經常有一些人在烹飪過後卻沒有食欲,出現嗅覺遲鈍、口渴、頭暈,眼、鼻、喉受刺激的症狀,國外把這種現象稱為“醉油綜合征”。
地理信息系统的空间特性 空间实体及其描述 空间问题论述 空间处理方法 北京大学遥感与GIS研究所 程承旗.
第十二课 易用性测试.
Foundations of Computer Science
第四章 電腦軟體 課前指引 實體的電腦裝置,我們稱之為「硬體」(Hardware),至於軟體則是個抽象的概念,軟體是經由人類以各種不同的程式語言撰寫而成,以達到控制硬體、進行各種工作的抽象化(例如文書處理)等動作。有些讀者經常迫不及買了一台新電腦,就以為可以開始使用!事實不然,一部配備齊全的電腦,如果沒有合適的軟體來控制與搭配,絕對也是英雄無用武之地。一般來說,我們將軟體分「系統軟體」(System.
Computer graphic final project report
第九章 2D遊戲演算法 課前指引 本章中將介紹在遊戲開發過程中,常會運用到一些貼圖技巧,來展現遊戲畫面及動態效果。例如基本貼圖、動畫貼圖、橫向捲軸移動、前景背景移動等,來提高單純2D圖片的變化性。
動畫與遊戲設計 2D Game 程于芳 老師
单片机应用技术 项目一 循环彩灯装置 第7讲 Keil软件的使用 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
動畫與遊戲設計 遊戲開發工具 程于芳 老師
项目:贪吃蛇游戏设计 工作任务一:系统设计(system design) 工作任务二:豆类(Bean)设计
操作系统结构.
第8章 机床操作 主讲:臧红彬 博士.
Advantage And Disadvantage
基于VC++的数字图像特效处理系统的设计与实现
Chapter 3. Visual Appearance 视觉外观
Chapter 13 輸入/輸出系統 (I/O Systems)
猜 谜 说个宝,道个宝,说它宝贵到处有, 看不见,摸不着,不香不臭没味道,   万物生存离不了,在你身边看不见, 越往高处它越少。(打一自然物)
Texture Mapping 靜宜大學資工系 蔡奇偉 副教授 2006.
也許你很疑惑: 最近升官的同事,專業能力又沒你強! 情場得意的朋友,長的又沒你帥或美! 小曹要交新朋友,為什麼就是比較簡單!
.NET Framework 3.0 Windows WorkFlow Foundation 工作流设计
计算机图形学 讲 授:董兰芳 研究方向:科学计算可视化 图形、图像处理 模式识别 中国科学技术大学 视觉计算与可视化实验室
課程名稱:計算機概論 授課老師:李春雄 博士
軟體原型 (Software Prototyping)
Chapter 2. The Graphics Rendering Pipeline 图形绘制流水线
OpenGL常见问题.
作 業 系 統 第三組 楊育翰 顏瑞霖.
GPU分散式演算法設計與單機系統模擬(第二季)
Operating System Concepts 作業系統原理 CHAPTER 2 系統結構 (System Structures)
具備可攜性及通話品質量測功能之軟體電話架構設計與實作
Windows 程式設計 (使用 C++ / C#)
Android 课程讲义 智能手机开发
OpenGL使用简介.
3D PACMAN! Student: Chia-Wei Yao ID:
An Introduction to Computer Science (計算機概論)
Native Development Kit
陈香兰 助教:陈博、李春华 Spring 2009 嵌入式操作系统 陈香兰 助教:陈博、李春华 Spring 2009.
第三章 基本觀念 電腦繪圖與動畫 (Computer Graphics & Animation) Object Data Image
Programmable Logic Architecture Verilog HDL FPGA Design
多媒體概論報告-BMP 組員名稱: 盧彥良-資料蒐集 周誠哲-資料蒐集
作業系統 (Operating System)
Introduction to OpenGL (1)
ICG 2018 Fall Homework1 Guidance
詩文的形成 有意義的字詞 句子 段落 一首詩文的形成,是由有意義的字詞組成句子,再由句子組成段落。
第三章 用户接口与作业管理 用户与操作系统的接口 批处理操作系统的作业管理 作业的基本概念:作业、作业步、作业流 交互式系统作业管理
Embed Google Map 資二乙 1號 王思洋.
Chap 01 3D動畫原理 3D電腦動畫 吳育龍老師.
第三章 基本觀念 電腦繪圖與動畫 (Computer Graphics & Animation) Object Data Image
第3章 截波及箝位電路實驗 3-1 串聯截波電路實驗 3-2 加偏壓之串聯截波電路實驗 3-3 並聯截波電路實驗
7.1.1 设备管理的功能(P95) 分配设备:按设备的不同类型和操作系统选用的算法分配。包括分配相应的通道、设备控制器以及对未分配到的任务或怍业进行排队等; 控制和实现真正的输入输出操作。包括通道程序控制、启动设备、及时响应及处理中断讯号等; 对输入输出缓冲区进行管理。例如逻辑名的管理,多个缓冲区的分时以及串并行操作,同类多个外部设备的均衡工作,避免“忙的忙”和“闲的闲”;
Unit 11.Operating System 11.1 What’s OS 11.2 Related Courses
資料結構 Data Structures Fall 2006, 95學年第一學期 Instructor : 陳宗正.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
作業系統 第三章 作業系統結構.
计算机图形学 姜明 北京大学数学科学学院 更新时间2019年4月25日星期四8时14分39秒.
模式与实践:Windows Mobile 5.0应用程序架构
透視Excel 2003 樞紐分析 Microsoft MVP 王作桓.
多媒体技术 中南大学信息科学与工程学院 黄东军.
現代專案管理教材 第一章 專案與專案管理 博碩文化出版發行.
1.3操作系统提供的服务和用户接口 操作系统提供的用户接口 程序接口与系统调用 操作接口与系统程序
重庆市第一0四中学 王继军.
OpenGL 基础 计算机科学与技术系.
Operating System Software School of SCU
案例分析: THE NEXTGEN POS SYSTEM
交互式计算机图形处理系统 哈尔滨工业大学计算机学院 唐好选 2019年7月27日.
PROGRAM 1 Simple E. Angel, Interactive Computer Graphics A Top-Down Approach with OpenGL, Third Edition Addison-Wesley Longman, 2003.
作業系統的操作 2019/8/9 明誠中學編製.
第三章 计算机体系结构.
Presentation transcript:

Introduction to OpenGL (1) 靜宜大學資工系 蔡奇偉 副教授 2001-2010

大綱 OpenGL 是什麼? 簡史 程式庫 命名規則 繪圖架構 主要參考資料

OpenGL 是什麼? OpenGL 是一套 2D/3D 的繪圖 API(Application Program Interface),其中包含了約 250 個函式。透過這些函式,我們可以利用繪圖卡的 2D/3D 硬體加速功能,免去 CPU 用於繪圖的負擔,因而提高系統整體的繪圖效率。 OpenGL 是一套跨平台的繪圖函式庫,因此使用 OpenGL 的繪圖程式具有高度的可攜性(即可以很容易地把程式移植到不同的電腦系統中)。 然而,OpenGL 並不包含處理視窗與人機介面的函式,這些功能得靠所使用的視窗系統來支援。

OpenGL 的簡史 1983 IRIS GL ships with SGI IRIS 1000 terminal 1987 SGI and Pixar consider joint API development 1991 OpenGL ARB created 1992 OpenGL 1.0 completed (June 30) 1995 OpenGL 1.1 released (vertex array, texture objects, new texenv modes) 1997 Fahrenheit agreement between SGI and Microsoft 1998 OpenGL 1.2 released (3D textures, separate specular, imaging) 1999 OpenGL 1.2.1 released (multi-texture) 2001 OpenGL 1.3 released (compressed texture, cube maps, multisample, dot3) 2002 OpenGL 1.4 (mip-map generation, shadows, point parameters) 2003 OpenGL 1.5 (vertex buffer objects, occlusion query) ARB extensions: OpenGL Shading language, ARB_vertex_program, ARB_fragment_program 2004 OpenGL 2.0

OpenGL 程式庫 opengl 核心程式庫 glu 此程式庫提供一些簡便的工具函式。 glut 提供跨平台的簡易 UI 函式,以便利撰寫 demo 程式。 glx 此程式庫提供結合 OpenGL 和 X Window 系統所需的函式。 wgl 此程式庫提供結合 OpenGL 和 MS Windows 系統所需的函式。 glew

命名規則 OpenGL 通常以 GL 或 gl 開頭 GLU 以 glu 開頭 GLUT 以 glut 開頭

OpenGL Software Rasterizer Application Program OS Services I/O Services GDI OpenGL Software Rasterizer Display Device GDI: Graphics Device Interface

OpenGL Hardware Rasterizer Application Program OS Services I/O Services GDI OpenGL Display Device Hardware Driver GDI : Graphic Device Interface

OpenGL Hybrid Rasterizer Application Program OS Services I/O Services GDI OpenGL Software Rasterizer Display Device Hardware Driver

OpenGL 資料處理流程

Vertex Data OpenGL 處理的幾何模型都是由 vertices 組合而成。 Pixel Data 圖片或紋理貼圖(texture)是由像素所組成。 Display List Vertices 或 pixels 資料可以存入 display list 中,供後續使用。 Evaluator 把 vertices 視為曲線或曲面的控制點,然後計算出真正位於曲線或曲面上的點。

Per-vertex Operations Primitive Assembly 執行剪裁(clipping)、投影、視埠轉換、深度值(depth)、截斷(culling)等計算。 Pixel Operations 像素經過 Scale, bias, mapping, clamping 等運算後,拷貝至 texture memory 或 frame buffer。 Texture Assembly 建立 texture 物件與其施行順序。Texture 物件可存在顯示卡的 texture memory 中,以加速 texture 的處理。

Rasterization 這個步驟把幾何資訊和像素資訊整合成 fragments。每一個 fragment 都對應至 frame buffer 中的相對像素,除了顏色外,也包含深度值資訊。 Per-fragment Operations 每一個 fragment 加上 texture 資料和雲霧效果設定,若通過 scissor test, alpha test, stencil test 和 depth-buffer test,則在施行 blending, dithering, logical operations, masking by a bitmask 等運算後,產生 frame buffer 中所對應的像素值。

主要參考資料 書籍: 網站: http://www.opengl.org OpenGL Programming Guide 5th Ed., Addison-Wesley 2006. OpenGL Superbible 4th Ed. 網站: http://www.opengl.org