Introduction to OpenGL (1)

Slides:



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

案例 某日,小强的妈妈带着 7 岁的小强去医院。妈妈说老 师多次反映小强容易发脾气,注意力难以集中、学习 成绩不好。妈妈说他从小就好动,容易分神。她同时 说最近小强经常感到肚子痛和便秘。她曾经买药给他 吃,但没有效果。 小强和姐姐、妈妈住在郊区外公外婆家。他爸爸是公 司司机。妈妈和外公都在一家蓄电池厂工作,小强和.
地理信息系统的空间特性 空间实体及其描述 空间问题论述 空间处理方法 北京大学遥感与GIS研究所 程承旗.
第四章 電腦軟體 課前指引 實體的電腦裝置,我們稱之為「硬體」(Hardware),至於軟體則是個抽象的概念,軟體是經由人類以各種不同的程式語言撰寫而成,以達到控制硬體、進行各種工作的抽象化(例如文書處理)等動作。有些讀者經常迫不及買了一台新電腦,就以為可以開始使用!事實不然,一部配備齊全的電腦,如果沒有合適的軟體來控制與搭配,絕對也是英雄無用武之地。一般來說,我們將軟體分「系統軟體」(System.
第九章 2D遊戲演算法 課前指引 本章中將介紹在遊戲開發過程中,常會運用到一些貼圖技巧,來展現遊戲畫面及動態效果。例如基本貼圖、動畫貼圖、橫向捲軸移動、前景背景移動等,來提高單純2D圖片的變化性。
動畫與遊戲設計 2D Game 程于芳 老師
動畫與遊戲設計 遊戲開發工具 程于芳 老師
操作系统结构.
Advantage And Disadvantage
基于VC++的数字图像特效处理系统的设计与实现
Chapter 3. Visual Appearance 视觉外观
Chapter 13 輸入/輸出系統 (I/O Systems)
Texture Mapping 靜宜大學資工系 蔡奇偉 副教授 2006.
計算機概論 蘇木春 中央大學資工系.
计算机图形学 讲 授:董兰芳 研究方向:科学计算可视化 图形、图像处理 模式识别 中国科学技术大学 视觉计算与可视化实验室
程式語言的基礎 Input Output Program 世代 程式語言 第一世代 Machine language 第二世代
軟體原型 (Software Prototyping)
Chapter 2. The Graphics Rendering Pipeline 图形绘制流水线
OpenGL常见问题.
手機作業系統介紹.
作 業 系 統 第三組 楊育翰 顏瑞霖.
Windows 程式設計 (使用 C++ / C#)
Working with Databases (II) 靜宜大學資管系 楊子青
OpenGL使用简介.
3D PACMAN! Student: Chia-Wei Yao ID:
桌面環境簡介及IDE開發工具 Outline (一)什麼是Linux? (二)桌面環境系統簡介 (三)IDE開發工具.
An Introduction to Computer Science (計算機概論)
R教學 安裝RStudio 羅琪老師.
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
Introduction to OpenGL (1)
安裝JDK 安裝Eclipse Eclipse 中文化
Methods 靜宜大學資工系 蔡奇偉副教授 ©2011.
第三章 基本觀念 電腦繪圖與動畫 (Computer Graphics & Animation) Object Data Image
Android App簡介及 App Inventor 2體驗 靜宜大學資管系 楊子青
作業系統 (Operating System)
OSGi (Open Service Gateway Initiative)
邹佳恒 第十八届全国科学计算与信息化会议 • 威海,
ICG 2018 Fall Homework1 Guidance
面向对象的分析与设计 教学计划 研究生课程 主讲教师:邵维忠 助教: 朱彬,柳毅,尤朝,张磊,黄艺燕 2009年2月—7月
Embed Google Map 資二乙 1號 王思洋.
Chap 01 3D動畫原理 3D電腦動畫 吳育龍老師.
Topic Introduction—RMI
第三章 基本觀念 電腦繪圖與動畫 (Computer Graphics & Animation) Object Data Image
第3章 截波及箝位電路實驗 3-1 串聯截波電路實驗 3-2 加偏壓之串聯截波電路實驗 3-3 並聯截波電路實驗
App Inventor 2初體驗 靜宜大學資管系 楊子青
Unit 11.Operating System 11.1 What’s OS 11.2 Related Courses
資料結構 Data Structures Fall 2006, 95學年第一學期 Instructor : 陳宗正.
作業系統 第三章 作業系統結構.
網頁程式概論 建國科技大學資管系 饒瑞佶 2015/9 V1 2016/4 V2 2016/9 V3.
计算机图形学 姜明 北京大学数学科学学院 更新时间2019年4月25日星期四8时14分39秒.
NSC D 蔣依吾 中山大學資訊工程系 紅外線點目標的檢知法則 Automatic detection of small targets in infrared image sequences containing evolving cloud clutter NSC D
模式与实践:Windows Mobile 5.0应用程序架构
資訊傳播工程學系 蔡奇偉 副教授 專業英文導讀 課程說明 資訊傳播工程學系 蔡奇偉 副教授
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
多媒体技术 中南大学信息科学与工程学院 黄东军.
以四元樹為基礎抽取圖片物件特徵 之 影像檢索
1.3操作系统提供的服务和用户接口 操作系统提供的用户接口 程序接口与系统调用 操作接口与系统程序
OpenGL 基础 计算机科学与技术系.
進階UI元件:ListView元件以及複選 靜宜大學資管系 楊子青
反覆迴圈、陣列、副程式 靜宜大學資管系 楊子青
反覆迴圈、陣列、副程式 靜宜大學資管系 楊子青
MultiThread Introduction
Operating System Software School of SCU
案例分析: THE NEXTGEN POS SYSTEM
PROGRAM 1 Simple E. Angel, Interactive Computer Graphics A Top-Down Approach with OpenGL, Third Edition Addison-Wesley Longman, 2003.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
醫療影像圖檔處理與投影顯示 Project L 指導教授: 東吳大學資訊科學系副教授 鄭為民老師 組員 Java 3D組 - 郭慈芬、李亭瑩
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Introduction to Mobile Computing
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 程式。 glaux SGI 所提供用來簡化 demo 程式撰寫的程式庫,目前已經淘汰,你應改用 GLUT。 glx 此程式庫提供結合 OpenGL 和 X Window 系統所需的函式。 wgl 此程式庫提供結合 OpenGL 和 MS Windows 系統所需的函式。

命名規則 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 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 4th Ed., Addison-Wesley 2003. OpenGL Reference Manual 3nd Ed., Addison-Wesley 1999. OpenGL Superbible 3nd Ed. 網站: http://www.opengl.org