WebGL OpenGL GLSL Kageyama (Kobe Univ.) Visualization / 57

Similar documents
WebGL Safari WebGL WebGL Safari Kageyama (Kobe Univ.) / 5

WebGL References Kageyama (Kobe Univ.) Visualization *4 2 / 54

WebGL Safari WebGL Kageyama (Kobe Univ.) Visualization / 55

Kageyama (Kobe Univ.) / 41

WebGL *1 DOM API *1 X LR301 Kageyama (Kobe Univ.) Visualization / 37

WebGL WebGL DOM Kageyama (Kobe Univ.) Visualization / 39

第3章 OpenGL の基礎

第3章 OpenGL の基礎

GPGPU

Presentation

07-二村幸孝・出口大輔.indd

1 3DCG [2] 3DCG CG 3DCG [3] 3DCG 3 3 API 2 3DCG 3 (1) Saito [4] (a) 1920x1080 (b) 1280x720 (c) 640x360 (d) 320x G-Buffer Decaudin[5] G-Buffer D


1 GPU GPGPU GPU CPU 2 GPU 2007 NVIDIA GPGPU CUDA[3] GPGPU CUDA GPGPU CUDA GPGPU GPU GPU GPU Graphics Processing Unit LSI LSI CPU ( ) DRAM GPU LSI GPU

HTML5無料セミナ.key


( ) 1 1: 1 #include <s t d i o. h> 2 #include <GL/ g l u t. h> 3 #include <math. h> 4 #include <s t d l i b. h> 5 #include <time. h>

Slides: TimeGraph: GPU Scheduling for Real-Time Multi-Tasking Environments

Kageyama (Kobe Univ.) Visualization / 32

main.dvi


Microsoft Word - 11_thesis_08k1131_hamada.docx

Microsoft PowerPoint - GPU_computing_2013_01.pptx

Vol.55 No (Jan. 2014) saccess 6 saccess 7 saccess 2. [3] p.33 * B (A) (B) (C) (D) (E) (F) *1 [3], [4] Web PDF a m

1 Fig. 2 2 Fig. 1 Sample of tab UI 1 Fig. 1 that changes by clicking tab 5 2. Web HTML Adobe Flash Web ( 1 ) ( 2 ) ( 3 ) ( 4 ) ( 5 ) 3 Web 2.1 Web Goo

IPSJ SIG Technical Report Vol.2014-EIP-63 No /2/21 1,a) Wi-Fi Probe Request MAC MAC Probe Request MAC A dynamic ads control based on tra

IPSJ SIG Technical Report Vol.2013-CE-122 No.16 Vol.2013-CLE-11 No /12/14 Android 1,a) 1 1 GPS LAN 2 LAN Android,,, Android, HTML5 LAN 1. ICT(I

0720

Android Windows 8 AP 9 AP ios & Android 10 ST 11 ST ios 12 ST Android 13 ST Win & Mac 14 ST ios 15 ST Android

ohp.mgp


Flash Player ローカル設定マネージャー

Łñ“’‘‚2004

プリント


GPU GPU CPU CPU CPU GPU GPU N N CPU ( ) 1 GPU CPU GPU 2D 3D CPU GPU GPU GPGPU GPGPU 2 nvidia GPU CUDA 3 GPU 3.1 GPU Core 1

,,,,., C Java,,.,,.,., ,,.,, i

IPSJ SIG Technical Report Vol.2013-ARC-203 No /2/1 SMYLE OpenCL (NEDO) IT FPGA SMYLEref SMYLE OpenCL SMYLE OpenCL FPGA 1

! 行行 CPUDSP PPESPECell/B.E. CPUGPU 行行 SIMD [SSE, AltiVec] 用 HPC CPUDSP PPESPE (Cell/B.E.) SPE CPUGPU GPU CPU DSP DSP PPE SPE SPE CPU DSP SPE 2

( CUDA CUDA CUDA CUDA ( NVIDIA CUDA I

作図ツール GC/html5 ビューア版の開発と iPad を使った教育実践 (数学ソフトウェアと教育 : 数学ソフトウェアの効果的利用に関する研究)

untitled

2013 M

WebRTC P2P Web Proxy P2P Web Proxy WebRTC WebRTC Web, HTTP, WebRTC, P2P i

FIT2013( 第 12 回情報科学技術フォーラム ) I-032 Acceleration of Adaptive Bilateral Filter base on Spatial Decomposition and Symmetry of Weights 1. Taiki Makishi Ch

Microsoft Word - hozon-fujimura-HP-伊勢工業高校における造船教育の歴史から学ぶ

Digital Photo Presenter for Studio ユーザーズガイド

@makoto_anjo (Computer Science) Google Desktop(Hall of Fame)


,,,, : - i -



untitled

熊本大学学術リポジトリ Kumamoto University Repositor Title GPGPU による高速演算について Author(s) 榎本, 昌一 Citation Issue date Type URL Presentation

07_経営論集2010 小松先生.indd


jquery

LDAP Manager SupportList

FileMaker Server Getting Started Guide

258 5) GPS 1 GPS 6) GPS DP 7) 8) 10) GPS GPS ) GPS Global Positioning System

LAPLINK ヘルプデスク 導入ガイド

スライド 1

29 jjencode JavaScript

Transcription:

WebGL 2014.04.15 X021 2014 3 1F Kageyama (Kobe Univ.) Visualization 2014.04.15 1 / 57

WebGL OpenGL GLSL Kageyama (Kobe Univ.) Visualization 2014.04.15 2 / 57

WebGL Kageyama (Kobe Univ.) Visualization 2014.04.15 3 / 57

WebGL http://bit.ly/1qxgljb Kageyama (Kobe Univ.) Visualization 2014.04.15 4 / 57

WebGL id if I id else kageyama.lecture Kageyama (Kobe Univ.) Visualization 2014.04.15 5 / 57

WebGL OpenGL glbegin/glend, glvertex, glnormal CG Computer Graphics OpenGL Kageyama (Kobe Univ.) Visualization 2014.04.15 6 / 57

WebGL WebGL Kageyama (Kobe Univ.) Visualization 2014.04.15 7 / 57

WebGL Kageyama (Kobe Univ.) Visualization 2014.04.15 8 / 57

WebGL 5 20 x 5 = 100 kageyama.lecture Kageyama (Kobe Univ.) Visualization 2014.04.15 9 / 57

WebGL WebGL WebGL - OpenGL ES 2.0 for the Web http://www.khronos.org/webgl/ Kageyama (Kobe Univ.) Visualization 2014.04.15 10 / 57

WebGL WebGL Firefox 4 Google Chrome 8 Safari 5 Opera 12 Internet Explorer 11 http://www.khronos.org/webgl/wiki/demo_repository Kageyama (Kobe Univ.) Visualization 2014.04.15 11 / 57

WebGL Professional WebGL Programming, A. Anyuru WebGL, Data Visualization Principles and Practice, C. Telea three.js HTML5 3D,, Kageyama (Kobe Univ.) Visualization 2014.04.15 12 / 57

WebGL Part 1 OpenGL WebGL CG GPU Part 2 WebGL Part 3 Kageyama (Kobe Univ.) Visualization 2014.04.15 13 / 57

講義の目標 WebGL とは 登攀ルート GPUを使いこなしたSci. Viz. 基本的可視化 アルゴリズム シェーダ言語 線形代数 コンピュータグラフィクス Kageyama (Kobe Univ.) Visualization 2014.04.15 14 / 57

OpenGL OpenGL Kageyama (Kobe Univ.) Visualization 2014.04.15 15 / 57

OpenGL OpenGL OpenGL 2.X OpenGL 1.X OpenGL 3.0 OpenGL 3.0 OpenGL 3.1 OpenGL 3.2 Kageyama (Kobe Univ.) Visualization 2014.04.15 16 / 57

OpenGL OpenGL Overview http://www.opengl.org OpenGL was first created as an open and reproducable alternative to Iris GL...Silicon Graphics workstations... OpenGL 1.0...non-SGI 3rd party...... OpenGL 2.0...OpenGL Shading Language (also called GLSL), a C like language with which the transformation and fragment shading stages of the pipeline can be programmed. OpenGL 3.0 adds the concept of deprecation... GL 3.1 removed most deprecated features, and GL 3.2 created the notion of core and compatibility OpenGL contexts. Official versions of OpenGL released to date are 1.0, 1.1, 1.2, 1.2.1, 1.3, 1.4, 1.5, 2.0, 2.1, 3.0, 3.1, 3.2, 3.3, 4.0, 4.1, 4.2, 4.3. Kageyama (Kobe Univ.) Visualization 2014.04.15 17 / 57

OpenGL OpenGL http://www.khronos.org OpenGL 4.3 OpenGL SL 4.3 OpenGL ES 3.0 ios, Android, Symbian WebGL 2.0 Kageyama (Kobe Univ.) Visualization 2014.04.15 18 / 57

OpenGL Shader-based OpenGL OpenGL OpenGL API OpenGL 3.0 OpenGL Shader-base Kageyama (Kobe Univ.) Visualization 2014.04.15 19 / 57

OpenGL OpenGL ver. 3.1 Kageyama (Kobe Univ.) Visualization 2014.04.15 20 / 57

OpenGL OpenGL ver. 3.1 // // H e l l o W o r l d. c // // To c o m p i l e on Mac. // gcc t h i s s o u r c e. c framework GLUT framework OpenGL // #i n c l u d e <GLUT/ g l u t. h> void d i s p l a y ( void ) { g l C l e a r ( GL COLOR BUFFER BIT ) ; g l B e g i n (GL POLYGON) ; g l V e r t e x 2 f ( 0.5, 0.5) ; g l V e r t e x 2 f ( 0.5, 0. 5 ) ; Kageyama (Kobe Univ.) Visualization 2014.04.15 21 / 57

OpenGL } g l V e r t e x 2 f ( 0. 5, 0. 5 ) ; g l V e r t e x 2 f ( 0. 5, 0.5) ; glend ( ) ; g l u t S w a p B u f f e r s ( ) ; i n t main ( i n t argc, char a r g v ) { g l u t I n i t (& argc, a r g v ) ; g l u t I n i t D i s p l a y M o d e (GLUT RGBA GLUT DOUBLE) ; glutcreatewindow ( H e l l o World ) ; g l u t D i s p l a y F u n c ( d i s p l a y ) ; glutmainloop ( ) ; } Listing 1: OpenGL Kageyama (Kobe Univ.) Visualization 2014.04.15 22 / 57

OpenGL WebGL link: webgl sample triangle 00.html Kageyama (Kobe Univ.) Visualization 2014.04.15 23 / 57

GLSL OpenGL OpenGL SL, GLSL 4.0 GPU CG = OpenGL + GLSL( + GLSL( Kageyama (Kobe Univ.) Visualization 2014.04.15 24 / 57

GLSL OpenGL GPU GPGPU Kageyama (Kobe Univ.) Visualization 2014.04.15 25 / 57

GLSL GPU GeForce GTX TITAN CUDA Cores 2688 Kageyama (Kobe Univ.) Visualization 2014.04.15 26 / 57

GLSL immediate-mode API GPU retained-mode API GPU WebGL API Kageyama (Kobe Univ.) Visualization 2014.04.15 27 / 57

GLSL OpenGL OpenGL 3.0 deprecation OpenGL 3.2 API glbegin/glend GL MODELVIEW, GL PROJECTION Kageyama (Kobe Univ.) Visualization 2014.04.15 28 / 57

GLSL OpenGL ES 2.0 OpenGL for Embedded Systems Immediate API glbegin/glend C/C++, Objective-C, Java OpenGL ES 2.0 WebGL WebGL JavaScript Kageyama (Kobe Univ.) Visualization 2014.04.15 29 / 57

GLSL HTML5 canvas HTML5 5 HTML canvas: JavaScript HTML5 canvas Kageyama (Kobe Univ.) Visualization 2014.04.15 30 / 57

CG Kageyama (Kobe Univ.) Visualization 2014.04.15 31 / 57

CG MPI Embarrassingly parallel problems Kageyama (Kobe Univ.) Visualization 2014.04.15 32 / 57

CG embarrassingly parallel etc. CG GPU (Graphics Processing Unit) Kageyama (Kobe Univ.) Visualization 2014.04.15 33 / 57

Kepler GeForce Nvidia white paper Kageyama (Kobe Univ.) Visualization 2014.04.15 34 / 57

Kepler GeForce Nvidia white paper Kageyama (Kobe Univ.) Visualization 2014.04.15 35 / 57

Graphics rendering pipeline グラフィックスレンダリング パイプライン input: 3 output: 2 Kageyama (Kobe Univ.) Visualization 2014.04.15 36 / 57

アプリケ ーション ジオメト リ ラスタラ イザ Kageyama (Kobe Univ.) Visualization 2014.04.15 37 / 57

Kageyama (Kobe Univ.) Visualization 2014.04.15 38 / 57

座標変換 ライティ ング 射影 クリッピ ング スクリー ンマッピ ング Kageyama (Kobe Univ.) Visualization 2014.04.15 39 / 57

canonical view volume 2 ( 1, 1, 1) (x, y, z) (1, 1, 1) Normalized Device Coordinates, NDC CG Kageyama (Kobe Univ.) Visualization 2014.04.15 40 / 57

2 orthographic projection, parallel projection perspective projection, view frustum 4 4 Kageyama (Kobe Univ.) Visualization 2014.04.15 41 / 57

Kageyama (Kobe Univ.) Visualization 2014.04.15 42 / 57

Kageyama (Kobe Univ.) Visualization 2014.04.15 43 / 57

width height x y z 1 z 1 Kageyama (Kobe Univ.) Visualization 2014.04.15 44 / 57

アプリケ ーション ジオメト リ ラスタラ イザ Kageyama (Kobe Univ.) Visualization 2014.04.15 45 / 57

3D 2D 2D Kageyama (Kobe Univ.) Visualization 2014.04.15 46 / 57

p. 51 Kageyama (Kobe Univ.) Visualization 2014.04.15 47 / 57

Kageyama (Kobe Univ.) Visualization 2014.04.15 48 / 57

Z Kageyama (Kobe Univ.) Visualization 2014.04.15 49 / 57

RGBA 16 bits, 23 bits, 32 bits RGBA32 = R8 + G8 + B8 + A8 Kageyama (Kobe Univ.) Visualization 2014.04.15 50 / 57

Z Z-buffer Edwin Catmull 1974 RenderMan Kageyama (Kobe Univ.) Visualization 2014.04.15 51 / 57

Z-buffer z z b z a z a < z b x Kageyama (Kobe Univ.) Visualization 2014.04.15 52 / 57

Z-buffer z x Kageyama (Kobe Univ.) Visualization 2014.04.15 53 / 57

Z-buffer z x Kageyama (Kobe Univ.) Visualization 2014.04.15 54 / 57

Z-buffer z b 3 z a = z 1 + (z 2 z 1 ) x s x 1 x 2 x 1 z b = z 2 + (z 3 z 2 ) x s x 2 x 3 x 2 z p = z a + (z b z a ) y p y b y b x a 2 a p 1 x x s Kageyama (Kobe Univ.) Visualization 2014.04.15 55 / 57

(Williams1978) z 2 Kageyama (Kobe Univ.) Visualization 2014.04.15 56 / 57

Kageyama (Kobe Univ.) Visualization 2014.04.15 57 / 57