An Interactive Introduction to OpenGL Programming
|
|
|
- Liani Sumadi
- 9 tahun lalu
- Tontonan:
Transkripsi
1 An Interactive Introduction to OpenGL Programming Dr. Mohammad Iqbal Based-on slide : Dave Shreiner, Ed Angel, Vicki Shreiner
2 Agenda General OpenGL Introduction Rendering Primitives Rendering Modes Lighting Texture Mapping Additional Rendering Attributes Imaging 2
3 Goals for Today Tujuan : mendemonstrasikan OpenGL dalam menghasilkan program grafik interaktif dalam Membuat model 3D obyek atau imagery Lighting - pencahayaan texture mapping Mengenalkan topik lanjut untuk pendalaman berikutnya 3
4 OpenGL and GLUT Overview
5 OpenGL and GLUT Overview Apakah OpenGL & apa manfaatnya? OpenGL dalam sistem window Mengapa GLUT Template program GLUT 5
6 Apakah OpenGL? Graphics rendering API (Application Programming Interface) citra warna high-quality yang terdiri dari geometric dan citra primitif Independen window system Independen operating system 6
7 Arsitektur OpenGL Polynomial Evaluator Per Vertex Operations & Primitive Assembly CPU Display List Rasterization Per Fragment Operations Frame Buffer Pixel Operations Texture Memory 7
8 OpenGL sebagai Renderer Geometric primitif titik, garis dan poligon Image Primitif Citra dan bitmap Memisahkan pipeline untuk citra dan geometry linked ketika penerapan texture mapping Rendering tergantung pada status warna, material, light sources, dll. 8
9 API yang Terkait OpenGL AGL, GLX, WGL Perekat antara OpenGL dan sistem window GLU (OpenGL Utility Library) Bagian OpenGL NURBS, tessellators, quadric shapes, dll. GLUT (OpenGL Utility Toolkit) portable windowing API Bukan bagian OpenGL secara ofisial 9
10 API yang Terkait OpenGL application program OpenGL Motif widget or similar GLX, AGL or WGL X, Win32, Mac O/S GLUT GLU GL software and/or hardware 10
11 Preliminaries Headers Files #include <GL/gl.h> #include <GL/glu.h> #include <GL/glut.h> Libraries Enumerated Types OpenGL defines numerous types for compatibility GLfloat, GLint, GLenum, etc. 11
12 Dasar-dasar GLUT Struktur Aplikasi Configure dan open window Initialisasi status OpenGL Register fungsi input callback render resize input: keyboard, mouse, dll. Enter event processing loop 12
13 Contoh Program void main( int argc, char** argv ) { int mode = GLUT_RGB GLUT_DOUBLE; glutinitdisplaymode( mode ); glutcreatewindow( argv[0] ); init(); glutdisplayfunc( display ); glutreshapefunc( resize ); glutkeyboardfunc( key ); glutidlefunc( idle ); glutmainloop(); } 13
14 Inisialisasi OpenGL Set up status yg ingin digunakan void init( void ) { glclearcolor( 0.0, 0.0, 0.0, 1.0 ); glcleardepth( 1.0 ); } glenable( GL_LIGHT0 ); glenable( GL_LIGHTING ); glenable( GL_DEPTH_TEST ); 14
15 Fungsi input Callback GLUT Rutin yang dipanggil ketika sesuatu terjadi window resize atau redraw user input animasi Me- register callbacks pada GLUT glutdisplayfunc( display ); glutidlefunc( idle ); glutkeyboardfunc( keyboard ); 15
16 Rendering Callback Lakukan penggambaran grafik pada bagian ini : glutdisplayfunc( display ); void display( void ) { glclear( GL_COLOR_BUFFER_BIT ); glbegin( GL_TRIANGLE_STRIP ); glvertex3fv( v[0] ); glvertex3fv( v[1] ); glvertex3fv( v[2] ); glvertex3fv( v[3] ); glend(); glutswapbuffers(); } 16
17 Idle Callbacks Gunakan untuk animasi dan update yang continyu glutidlefunc( idle ); void idle( void ) { t += dt; glutpostredisplay(); } 17
18 User Input Callbacks Untuk pemrosesan input dari user glutkeyboardfunc( keyboard ); void keyboard( unsigned char key, int x, int y ) { switch( key ) { case q : case Q : exit( EXIT_SUCCESS ); break; case r : case R : rotate = GL_TRUE; glutpostredisplay(); break; } } 18
19 Elementary Rendering
20 Agenda Elementary Rendering Geometric Primitives Managing OpenGL State OpenGL Buffers 20
21 OpenGL Geometric Primitif Semua jenis geometric primitif dispesifikasikan oleh pipeline vertices GL_POINTS GL_LINES GL_LINE_STRIP GL_LINE_LOOP GL_POLYGON GL_TRIANGLES GL_TRIANGLE_STRIP GL_TRIANGLE_FAN GL_QUADS GL_QUAD_STRIP 21
22 Contoh Sederhana void drawrhombus( GLfloat color[] ) { glbegin( GL_QUADS ); glcolor3fv( color ); glvertex2f( 0.0, 0.0 ); glvertex2f( 1.0, 0.0 ); glvertex2f( 1.5, ); glvertex2f( 0.5, ); glend(); } 22
23 Format Perintah OpenGL glvertex3fv( v ) Number of components 2 - (x,y) 3 - (x,y,z) 4 - (x,y,z,w) Data Type b - byte ub - unsigned byte s - short us - unsigned short i - int ui - unsigned int f - float d - double Vector omit v for scalar form glvertex2f( x, y ) 23
24 Specifying Geometric Primitives Primitif dispesifikasikan menggunakan : glbegin( primtype ); glend(); primtype menentukan bagaimana vertice dikombinasikan GLfloat red, green, blue; Glfloat coords[3]; glbegin( primtype ); for ( i = 0; i < nverts; ++i ) { glcolor3f( red, green, blue ); glvertex3fv( coords ); } glend(); 24
25 Model Warna OpenGL CPU CPU Poly. Poly. DL DL Pixel Pixel RGBA atau Color Index Per Per Vertex Vertex Texture Texture Raster Raster Frag Frag FB FB color index mode Red Green Blue Display RGBA mode 25
26 Shapes Tutorial 26
27 Mengendalikan tampilan Appearance (Rendering) Dari Wireframe menjadi Texture Mapped 27
28 Mesin Status OpenGL Setiap atribut rendering di encapsulapsi dalam OpenGL State rendering styles shading lighting texture mapping 28
29 Manipulasi Status OpenGL Tampilan dikendalikan oleh status terakhir for each ( primitive to render ) { } update OpenGL state render primitive Manipulasi atribut vertex adalah cara umum untuk memanipulasi status glcolor*() / glindex*() glnormal*() gltexcoord*() 29
30 Mengendalikan Status terakhir Setting Status glpointsize( size ); gllinestipple( repeat, pattern ); glshademodel( GL_SMOOTH ); Enabling Features glenable( GL_LIGHTING LIGHTING ); gldisable( GL_TEXTURE_2D ); 30
31 Transformasi
32 Transformasi dalam OpenGL Modeling Viewing orientasi kamera projection Animasi Map to screen 32
33 Analogi Kamera 3D adalah seperti mengambil citra pada fotografi (Banyak foto!) camera viewing volume tripod model 33
34 Analogi Kamera dan Transformasi Projection transformations Mengatur lensa kamera Viewing transformations Mengatur posisi tripod dan orientasi viewing suatu volume dalam dunia nyata (world) Modeling transformations memindahkan model Viewport transformations Memperbesar atau mengurangi fotografi secara fisik 34
35 Sistem Koordinat dan Transformasi Langkah dalam menyiapkan citra spesifikasikan geometri (world coordinates) spesifikasikan kamera (camera coordinates) proyeksi (window coordinates) Petakan ke viewport (screen coordinates) Setiap langkah menggunakan transformasi Setiap transformasi adalah ekuivalen pada perubahan di sistem koordinat (frames) 35
36 Transformasi Affine Transformasi yang mempertahankan bentuk geometri garis, poligon, quadric Affine = mempertahankan garis (line preserving) Rotasi, translasi, skala Proyeksi Konkatnasi (komposisi) 36
37 Koordinat Homogen Setiap vertex adalah vector kolom v = x y z w w umumnya bernilai 1.0 Semua operasi adalah perkalian matriks Arah (directed line segments) direpresentasikan w =
38 3D Transformations Vertex ditransformasikan oleh 4 x 4 matrik Semua operasi affine adalah perkalian matriks Semua matrik disimpan secara column-major dalam OpenGL matriks selalu dalam kondisi post-multiplied Produk matrik dan vector adalah Mv M = m m m m m m m m m m m m m m m m
39 Menspesifikasikan Transformasi Programmer memiliki 2 styles untuk men-spesifikasikan transformasi glloadmatrix, spesifikasikan matriks (glloadmatrix, glmultmatrix) spesifikasikan operasi (glrotate, glortho) Programmer tidak perlu mengingat jenis matriksnya secara tepat cek lampiran buku Red Book (Programming Guide) 39
40 Programming Transformations Sebelum proses rendering, view, locate, dan orientasi : Posisi mata/kamera 3D geometri Mengatur matriks Termasuk matriks stack Kombinasikan (composite) transformasi 40
41 Pipeline Transformasi CPU CPU Poly. Poly. DL DL Pixel Pixel Per Per Vertex Vertex Texture Texture Raster Raster Frag Frag FB FB v e r t e x object eye clip normalized device Modelview Matrix Projection Matrix Perspective Division Viewport Transform window Modelview Modelview Projection Bbrp kalkulasi tambahan : material color shade model (flat) polygon rendering mode polygon culling clipping 41
42 Operasi Matriks Spesifikasikan Matriks Stack terkini glmatrixmode( GL_MODELVIEW atau GL_PROJECTION ) Matriks atau operasi Stack lain Viewport glloadidentity() glpushmatrix() glpopmatrix() Biasanya sama dengan ukuran window size aspek rasio viewport harus sama dengan transformasi proyeksi atau citra hasilnya akan terdistorsi glviewport( x, y, width, height ) 42
43 Transformasi Proyeksi Bentuk untuk menampilkan (viewing) frustum : Perspective projection gluperspective( fovy, aspect, znear, zfar ) glfrustum( left, right, bottom, top, znear, zfar ) Orthographic parallel projection glortho( left, right, bottom, top, znear, zfar ) gluortho2d( left, right, bottom, top ) Gunakan glortho dengan nilai z mendekati nol 43
44 Mengaplikasikan Transformasi Proyeksi Pengunaan Umum (orthographic projection) glmatrixmode( GL_PROJECTION ); glloadidentity(); glortho( left, right, bottom, top, znear, zfar ); 44
45 Viewing Transformations Posisi Kamera/mata dalam scene Posisikan tripod (eye) ; persiapkan (aim) Kamera Untuk Scene fly through Ubah transformasi viewing dan re-draw scene glulookat( eye x, eye y, eye z, aim x, aim y, aim z, up x, up y, up z ) up vector menghasilkan orientasi unik Berhati-hati dalam de-generate posisi tripod 45
46 Projection Tutorial 46
47 Modeling Transformations Memindahkan obyek gltranslate{fd}( x, y, z ) Rotasi obyek di sekitar sumbu utama x glrotate{fd fd}( angle, x, y, z ) angle dalam derajat ( y z) Dilasi (stretch atau shrink) atau mirror object glscale{fd}( x, y, z ) 47
48 Transformation Tutorial 48
49 Connection: Viewing dan Modeling Memindahkan kamera equivalent dengan memindahkan setiap obyek di dunia nyata di depan kamera diam Viewing transformation equivalent dengan transformasi modeling glulookat() memiliki perintah tersendiri yaitu polar view atau pilot view 49
50 Proyeksi dengan kaidah tangan kiri Projection transformations (gluperspective, glortho) berdasarkan kaidah tangan kiri bayangkan znear dan zfar sebagai jarak tertentu dari view point Setiap hal selain itu adalah kaidah tangan kanan, termasuk vertex yang di y render y left handed z+ x right handed z+ x 50
51 Penggunaan Umum Transformasi 3 contoh rutin resize() Re-status proyeksi & viewing transformations Umumnya dipanggil ketika window resize Di-register sebagai callback untuk glutreshapefunc() 51
52 resize(): Perspective & LookAt void resize( int w, int h ) { glviewport( 0, 0, (GLsizei) w, (GLsizei) h ); glmatrixmode( GL_PROJECTION ); glloadidentity(); gluperspective( 65.0, (GLdouble) w / h, 1.0, ); glmatrixmode( GL_MODELVIEW ); glloadidentity(); glulookat( 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0 ); } 52
53 resize(): Perspective & Translate Efek yang sama dengan LookAt : void resize( int w, int h ) { glviewport( 0, 0, (GLsizei) w, (GLsizei) h ); glmatrixmode( GL_PROJECTION ); glloadidentity(); gluperspective( 65.0, (GLdouble) w/h, 1.0, ); glmatrixmode( GL_MODELVIEW ); glloadidentity(); gltranslatef( 0.0, 0.0, -5.0 ); } 53
54 resize(): Ortho (bagian 1) void resize( int width, int height ) { GLdouble aspect = (GLdouble) width / height; GLdouble left = -2.5, right = 2.5; GLdouble bottom = -2.5, top = 2.5; glviewport( 0, 0, (GLsizei) w, (GLsizei) h ); glmatrixmode( GL_PROJECTION ); glloadidentity(); continued 54
55 resize(): Ortho (bagian 2) } if ( aspect < 1.0 ) { left /= aspect; right /= aspect; } else { bottom *= aspect; top *= aspect; } glortho( left, right, bottom, top, near, far ); glmatrixmode( GL_MODELVIEW ); glloadidentity(); 55
56 Membangun Modeling Transformations Masalah 1: hirarki obyek Suatu posisi tergantung pada posisi sebelumnya Lengan robot atau tangan ; sub-assemblies Solusi 1: memindahkan sistem koordinat lokal modeling transformation untuk memindahkan sistem koordinat post-multiply column-major matrices OpenGL post-multiplies matrices 56
57 Membangun Modeling Transformations Masalah 2 : obyek berpindah secara relatif pada absolute world origin Obyek berotasi di area yang salah pada origin Membuat obyek spin di sekitar center atau suatu area Solusi 2: fixed coordinate system modeling transformations akan memindahkan obyek disekitar fixed coordinate system pre-multiply column-major matrices OpenGL post-multiplies matrices harus me-reverse order operasi untuk mendapatkan efek yang diinginkan 57
58 Area Clipping Tambahan Paling tidak ada 6 atau lebih area clipping Baik untuk perhitungan cross-sections Modelview matrix memindahkan area clipping clipped Ax + By + Cz + D < 0 glenable( GL_CLIP_PLANEi ) glclipplane( GL_CLIP_PLANEi, GLdouble* coeff ) 58
59 Reversing Koordinat Proyeksi Screen space kembali ke world space glgetintegerv( GL_VIEWPORT, GLint viewport[4] ) glgetdoublev( GL_MODELVIEW_MATRIX, GLdouble mvmatrix[16] ) glgetdoublev( GL_PROJECTION_MATRIX, GLdouble projmatrix[16] ) gluunproject( GLdouble winx, winy, winz, mvmatrix[16], projmatrix[16], GLint viewport[4], GLdouble *objx, *objy, *objz ) gluproject untuk memindahkan world space ke screen space 59
60 Pencahayaan (Lighting)
61 Prinsip Pencahayaan Pencahayaan mensimulasikan bagaimana obyek memantulkan cahaya Komposisi material obyek Warna cahaya dan posisi Parameter global pencahayaan Cahaya ambien Pencahayaan dua sisi Terdapat pada color index dan mode RGBA 61
62 Bagaimana OpenGL Mensimulasikan Cahaya Model Pencahayaan Phong Perhitungan pada vertices Kontributor Pencahayaan Properti permukaan material Properti cahaya Properti Model pencahayaan 62
63 Surface Normals CPU CPU Poly. Poly. Normal mendefinisikan bagaimana pemukaan memantulkan cahaya glnormal3f( x, y, z ) Current normal digunakan untuk menghitung warna vertex Gunakan unit normals untuk pencahayaan yang tepat DL DL Pixel Pixel Per Per Vertex Vertex Texture Texture Skalakan efek pada panjang normal glenable( GL_NORMALIZE ) or glenable( GL_RESCALE_NORMAL ) Raster Raster Frag Frag FB FB 63
64 Material Properties Definisikan properti permukaan obyek primitif glmaterialfv( face, property, value ); GL_DIFFUSE GL_SPECULAR GL_AMBIENT GL_EMISSION GL_SHININESS Base color Highlight Color Low-light Color Glow Color Surface Smoothness Pisahkan material antara bagian front dan back 64
65 Properti Cahaya gllightfv( light, property, value ); light menspesifikasikan jenis cahaya multiple lights, mulai dari GL_LIGHT0 glgetintegerv( GL_MAX_LIGHTS, &n ); properties Warna posisi dan type Attenuation (metode perambatan) 65
66 Sumber cahaya Light color properties GL_AMBIENT GL_DIFFUSE GL_SPECULAR 66
67 Tipe Cahaya OpenGL mendukung 2 tipe Cahaya : Local (Point) light sources Infinite (Directional) light sources Tipe cahaya dikendalikan oleh koordinat w w = 0 Infinite Light directed along ( x y z) w 0 Local Light positioned at ( ) x y z w w w 67
68 Menyalakan (Turning on) Cahaya Flip setiap switch cahaya glenable( GL_LIGHTn ); Turn on the power glenable( GL_LIGHTING ); 68
69 Light Material Tutorial 69
70 Mengendalikan Posisi Cahaya Modelview matrix berpengaruh pada posisi cahaya: Perbedaan efek berdasarkan kapan posisi cahaya dispesifikasikan eye coordinates world coordinates model coordinates Matrik Push dan pop untuk pengendali unik posisi cahaya 70
71 Light Position Tutorial 71
72 Fitur Pencahayaan Lanjut Spotlight Melokalisasi efek cahaya GL_SPOT_DIRECTION GL_SPOT_CUTOFF GL_SPOT_EXPONENT 72
73 Fitur Pencahayaan Lanjut Perambatan cahaya (Light attenuation) decrease light intensity with distance GL_CONSTANT_ATTENUATION GL_LINEAR_ATTENUATION GL_QUADRATIC_ATTENUATION f i = k c + k l 1 d + k q d 2 73
74 Properti Model Cahaya gllightmodelfv( property, value ); Enabling two sided lighting GL_LIGHT_MODEL_TWO_SIDE Global ambient color GL_LIGHT_MODEL_AMBIENT Local viewer mode GL_LIGHT_MODEL_LOCAL_VIEWER Separate specular color GL_LIGHT_MODEL_COLOR_CONTROL 74
75 Tips untuk pencahayaan yg baik Pemanggilan Pencahayaan dikomputasi hanya pada vertices Pemanggilan pada model tessellation memang menghasilkan kualitas pencahayaan yang lebih baik tapi proses geometrinya lebih kompleks Gunakan cahaya tunggal infinite untuk perhitungan pencahayaan cepat Karena komputasi minimal untuk setiap vertex-nya 75
76 Animasi dan Depth Buffering
77 Animation dan Depth Buffering Mendikusikan double buffering dan animasi Mendiskusikan hidden surface removal menggunakan depth buffer 77
78 Double Buffering CPU CPU Poly. Poly. DL DL Pixel Pixel Per Per Vertex Vertex Texture Texture Raster Raster Frag Frag FB FB Front Buffer Back Buffer Display 78
79 Animasi menggunakan Double Buffering Defenisikan double buffered pada color buffer glutinitdisplaymode( GLUT_RGB GLUT_DOUBLE ); Clear color buffer glclear( GL_COLOR_BUFFER_BIT ); Render scene Definisikan swap untuk front dan back buffers glutswapbuffers(); Ulangi langkah 2-4 untuk animasi 79
80 Depth Buffering dan Hidden Surface Removal Color Buffer Depth Buffer Display 80
81 Depth Buffering menggunakan OpenGL Defenisikan depth buffer glutinitdisplaymode( GLUT_RGB GLUT_DOUBLE GLUT_DEPTH ); Enable depth buffering glenable( GL_DEPTH_TEST ); Clear color dan depth buffers glclear( GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT ); Render scene Swap color buffers 81
82 An Updated Program Template void main( int argc, char** argv ) { glutinit( &argc, argv ); glutinitdisplaymode( GLUT_RGB GLUT_DOUBLE GLUT_DEPTH ); glutcreatewindow( Tetrahedron ); init(); glutidlefunc( idle ); glutdisplayfunc( display ); glutmainloop(); } 82
83 An Updated Program Template (Lanjutan) void init( void ) { glclearcolor( 0.0, 0.0, 1.0, 1.0 ); } void idle( void ) { glutpostredisplay(); } 83
84 An Updated Program Template (Lanjutan) void drawscene( void ) { GLfloat vertices[] = { }; GLfloat colors[] = { }; glclear( GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT ); glbegin( GL_TRIANGLE_STRIP ); /* calls to glcolor*() and glvertex*() */ glend(); glutswapbuffers(); } 84
85 Texture Mapping
86 Texture Mapping CPU CPU Poly. Poly. DL DL Pixel Pixel Per Per Vertex Vertex Texture Texture Raster Raster Frag Frag mengaplikasikan citra 1D, 2D, atau 3D ke geometrik primitif Hal yang digunakan untuk proses Texturing simulasi material Mengurangi kompleksitas geometrik image warping refleksi FB FB 86
87 Texture Mapping y z x geometry screen t image s 87
88 Texture Mapping dan OpenGL Pipeline Citra dan geometri mengalir dalam pipeline yang terpisah pada proses di rasterizer kompleks textures tidak berpengaruh pada kompleksitas geometrik vertices geometry pipeline rasterizer image pixel pipeline 88
89 Contoh Tekstur Tekstur ini adalah citra 256 x 256 yang di gabung (mapped) dengan poligon persegi panjang yang di tampilkan pada perspektif 89
90 Cara mengaplikasikan Tekstur I Three steps specify texture read or generate image assign to texture enable texturing assign texture coordinates to vertices specify texture parameters wrapping, filtering 90
91 Tekstur Obyek Like display lists for texture images one image per texture object may be shared by several graphics contexts Generate texture names glgentextures( n, *texids ); 91
92 Cara mengaplikasikan Tekstur II specify textures in texture objects set texture filter set texture function set texture wrap mode set optional perspective correction hint bind texture object enable texturing supply texture coordinates for vertex coordinates can also be generated 92
93 Tekstur Obyek (lanjutan) Create texture objects with texture data and state glbindtexture( target, id ); Bind textures before using glbindtexture( target, id ); 93
94 Memilih citra untuk Tekstur CPU CPU Poly. Poly. DL DL Pixel Pixel Per Per Vertex Vertex Texture Texture Raster Raster Frag Frag FB FB Define a texture image from an array of texels in CPU memory glteximage2d( target, level, components, w, h, border, format, type, *texels ); dimensions of image must be powers of 2 Texel colors are processed by pixel pipeline pixel scales, biases and lookups can be done 94
95 Konversikan citra Tekstur If dimensions of image are not power of 2 gluscaleimage( format, w_in, h_in, type_in, *data_in, w_out, h_out, type_out, *data_out ); *_in is for source image *_out is for destination image Image interpolated and filtered during scaling 95
96 Memilih Tekstur: Methode Lainnya Use frame buffer as source of texture image uses current buffer as source image glcopyteximage1d(...) glcopyteximage2d(...) Modify part of a defined texture gltexsubimage1d(...) gltexsubimage2d(...) gltexsubimage3d(...) Do both with glcopytexsubimage2d(...), etc. 96
97 Memetakan (Mapping) Tekstur CPU CPU Poly. Poly. Based on parametric texture coordinates gltexcoord*() specified at each vertex DL DL Pixel Pixel Per Per Vertex Vertex Texture Texture Raster Raster Frag Frag FB FB t 0, 1 Texture Space a 1, 1 Object Space (s, t) = (0.2, 0.8) A b 0, 0 1, 0 c s (0.4, 0.2) B C (0.8, 0.4) 97
98 Membuat Koordinat Tekstur Automatically generate texture coords gltexgen{ifd}[v]() specify a plane generate texture coordinates based upon distance from plane generation modes GL_OBJECT_LINEAR GL_EYE_LINEAR GL_SPHERE_MAP Ax + By + Cz + D = 0 98
99 Tutorial: Texture 99
100 Metode Aplikasi Tekstur Filter Modes minification or magnification special mipmap minification filters Wrap Modes clamping or repeating Texture Functions how to mix primitive s color with texture s color blend, modulate or replace texels 100
101 Filter Modes Example: gltexparameteri( target, type, mode ); Texture Polygon Magnification Texture Polygon Minification 101
102 Tekstur Mipmapped Mipmap allows for prefiltered texture maps of decreasing resolutions Lessens interpolation errors for smaller textured objects Declare mipmap level during texture definition glteximage*d( GL_TEXTURE_*D, level, ) GLU mipmap builder routines glubuild*dmipmaps( ) OpenGL 1.2 introduces advanced LOD controls 102
103 Mode Wrapping Example: gltexparameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP ) gltexparameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT ) t texture s GL_REPEAT wrapping GL_CLAMP wrapping 103
104 Fungsi berkaitan dengan Tekstur Controls how texture is applied gltexenv{fi}[v]( GL_TEXTURE_ENV, prop, param ) GL_TEXTURE_ENV_MODE modes GL_MODULATE GL_BLEND GL_REPLACE Set blend color with GL_TEXTURE_ENV_COLOR 104
105 Tips untuk Koreksi Perspektif Texture coordinate and color interpolation either linearly in screen space or using depth/perspective values (slower) Noticeable for polygons on edge glhint( GL_PERSPECTIVE_CORRECTION_HINT, hint ) where hint is one of GL_DONT_CARE GL_NICEST GL_FASTEST 105
106 Adakah tempat untuk Tekstur? Query largest dimension of texture image typically largest square texture doesn t consider internal format size glgetintegerv( GL_MAX_TEXTURE_SIZE, &size ) Texture proxy will memory accommodate requested texture size? no image specified; placeholder if texture won t fit, texture state variables set to 0 doesn t know about other textures only considers whether this one texture will fit all of memory 106
107 Texture Residency Working set of textures high-performance, usually hardware accelerated textures must be in texture objects a texture in the working set is resident for residency of current texture, check GL_TEXTURE_RESIDENT state If too many textures, not all are resident can set priority to have some kicked out first establish 0.0 to 1.0 priorities for texture objects 107
108 Imaging and Raster Primitives
109 Imaging and Raster Primitives Describe OpenGL s raster primitives: bitmaps and image rectangles Demonstrate how to get OpenGL to read and render pixel rectangles 109
110 Pixel-based primitives Bitmaps 2D array of bit masks for pixels Images update pixel color based on current color 2D array of pixel color information complete color information for each pixel OpenGL doesn t understand image formats 110
111 Pixel Pipeline CPU CPU Poly. Poly. DL DL Pixel Pixel Per Per Vertex Vertex Texture Texture Programmable pixel storage and transfer operations Raster Raster Frag Frag FB FB glbitmap(), gldrawpixels() CPU Pixel Storage Modes Pixel-Transfer Operations (and Pixel Map) Rasterization (including Pixel Zoom) Per Fragment Operations Frame Buffer Texture Memory glcopytex*image(); glreadpixels(), glcopypixels()
112 Positioning Image Primitives glrasterpos3f( x, y, z ) raster position transformed like geometry discarded if raster position is outside of viewport may need to fine tune viewport for desired results Raster Position 112
113 Rendering Bitmaps glbitmap( width, height, xorig, yorig, xmove, ymove, bitmap ) x xorig y yorig ( ) render bitmap in current color at yorig ( xmove advance ymove) raster position by after rendering width xorig xmove height 113
114 Rendering Fonts using Bitmaps OpenGL uses bitmaps for font rendering each character is stored in a display list containing a bitmap window system specific routines to access system fonts glxusexfont() wglusefontbitmaps() 114
115 Rendering Images gldrawpixels( width, height, format, type, pixels ) render pixels with lower left of image at current raster position numerous formats and data types for specifying storage in memory best performance by using format and type that matches hardware 115
116 Reading Pixels glreadpixels( x, y, width, height, format, type, pixels ) read pixels from specified (x,y) position in framebuffer pixels automatically converted from framebuffer format into requested format and type Framebuffer pixel copy glcopypixels( x, y, width, height, type ) 116
117 Pixel Zoom glpixelzoom( x, y ) expand, shrink or reflect pixels around current raster position fractional zoom supported Raster Position glpixelzoom(1.0, -1.0); 117
118 Storage and Transfer Modes Storage modes control accessing memory byte alignment in host memory extracting a subimage Transfer modes allow modify pixel values scale and bias pixel component values replace colors using pixel maps 118
119 Advanced OpenGL Topics
120 Advanced OpenGL Topics Display Lists and Vertex Arrays Alpha Blending and Antialiasing Using the Accumulation Buffer Fog Feedback & Selection Fragment Tests and Operations Using the Stencil Buffer 120
121 Immediate Mode versus Display Listed Rendering Immediate Mode Graphics Primitives are sent to pipeline and display right away No memory of graphical entities Display Listed Graphics Primitives placed in display lists Display lists kept on graphics server Can be redisplayed with different state Can be shared among OpenGL graphics contexts 121
122 Immediate Mode versus Display Lists Immediate Mode Polynomial Evaluator Per Vertex Operations & Primitive Assembly CPU Display List Rasterization Per Fragment Operations Frame Buffer Display Listed Pixel Operations Texture Memory 122
123 Display Lists Poly. Poly. Per Per Vertex Vertex CPU CPU DL DL Pixel Pixel Texture Texture Raster Raster Frag Frag FB FB Creating a display list GLuint id; void init( void ) { id = glgenlists( 1 ); glnewlist( id, GL_COMPILE ); /* other OpenGL routines */ glendlist(); } Call a created list void display( void ) { glcalllist( id ); } 123
124 Display Lists Not all OpenGL routines can be stored in display lists State changes persist, even after a display list is finished Display lists can call other display lists Display lists are not editable, but you can fake it make a list (A) which calls other lists (B, C, and D) delete and replace B, C, and D, as needed 124
125 Display Lists and Hierarchy Consider model of a car Create display list for chassis Create display list for wheel glnewlist( CAR, GL_COMPILE ); glcalllist( CHASSIS ); gltranslatef( ); glcalllist( WHEEL ); gltranslatef( ); glcalllist( WHEEL ); glendlist(); 125
126 Advanced Primitives Vertex Arrays Bernstein Polynomial Evaluators basis for GLU NURBS NURBS (Non-Uniform Rational B-Splines) GLU Quadric Objects sphere cylinder (or cone) disk (circle) 126
127 Vertex Arrays CPU CPU Poly. Poly. DL DL Pixel Pixel Per Per Vertex Vertex Texture Texture Raster Raster Frag Frag FB FB Pass arrays of vertices, colors, etc. to OpenGL in a large chunk glvertexpointer( 3, GL_FLOAT, 0, coords ) glcolorpointer( 4, GL_FLOAT, 0, colors ) glenableclientstate( GL_VERTEX_ARRAY ) glenableclientstate( GL_COLOR_ARRAY ) gldrawarrays( GL_TRIANGLE_STRIP, 0, numverts ); All active arrays are used in rendering Color data Vertex data 127
128 Why use Display Lists or Vertex Arrays? May provide better performance than immediate mode rendering Display lists can be shared between multiple OpenGL context reduce memory usage for multi-context applications Vertex arrays may format data for better memory access 128
129 Alpha: the 4 th Color Component Measure of Opacity simulate translucent objects glass, water, etc. composite images antialiasing ignored if blending is not enabled glenable( GL_BLEND ) 129
130 Blending Combine pixels with what s in already in the framebuffer glblendfunc( src, dst ) Fragment (src) C r = Framebuffer Pixel (dst) CPU CPU src C f Blending Equation Poly. Poly. DL DL Pixel Pixel + Per Per Vertex Vertex Texture Texture dst C Raster Raster p Frag Frag FB FB Blended Pixel 130
131 Multi-pass Rendering Blending allows results from multiple drawing passes to be combined together enables more complex rendering algorithms Example of bump-mapping done with a multi-pass OpenGL algorithm 131
132 Antialiasing Removing the Jaggies glenable( mode ) GL_POINT_SMOOTH GL_LINE_SMOOTH GL_POLYGON_SMOOTH alpha value computed by computing sub-pixel coverage available in both RGBA and colormap modes 132
133 Accumulation Buffer Problems of compositing into color buffers limited color resolution clamping loss of accuracy Accumulation buffer acts as a floating point color buffer accumulate into accumulation buffer transfer results to frame buffer 133
134 Accessing Accumulation Buffer glaccum( op, value ) operations within the accumulation buffer: GL_ADD, GL_MULT from read buffer: GL_ACCUM, GL_LOAD transfer back to write buffer: GL_RETURN glaccum(gl_accum, 0.5) multiplies each value in write buffer by 0.5 and adds to accumulation buffer 134
135 Accumulation Buffer Applications Compositing Full Scene Antialiasing Depth of Field Filtering Motion Blur 135
136 Full Scene Antialiasing : Jittering the view Each time we move the viewer, the image shifts Different aliasing artifacts in each image Averaging images using accumulation buffer averages out these artifacts 136
137 Depth of Focus : Keeping a Plane in Focus Jitter the viewer to keep one plane unchanged Back Plane Focal Plane Front Plane eye pos 1 eye pos 2 137
138 Fog glfog{if}( property, value ) Depth Cueing Specify a range for a linear fog ramp GL_FOG_LINEAR Environmental effects Simulate more realistic fog GL_FOG_EXP GL_FOG_EXP2 138
139 Fog Tutorial 139
140 Feedback Mode Transformed vertex data is returned to the application, not rendered useful to determine which primitives will make it to the screen Need to specify a feedback buffer glfeedbackbuffer( size, type, buffer ) Select feedback mode for rendering glrendermode( GL_FEEDBACK ) 140
141 Selection Mode Method to determine which primitives are inside the viewing volume Need to set up a buffer to have results returned to you glselectbuffer( size, buffer ) Select selection mode for rendering glrendermode( GL_SELECT ) 141
142 Selection Mode (cont.) To identify a primitive, give it a name names are just integer values, not strings Names are stack based allows for hierarchies of primitives Selection Name Routines glloadname( name ) glpushname( name ) glinitnames() 142
143 Picking Picking is a special case of selection Programming steps restrict drawing to small region near pointer use glupickmatrix() on projection matrix enter selection mode; re-render scene primitives drawn near cursor cause hits exit selection; analyze hit records 143
144 Picking Template glutmousefunc( pickme ); void pickme( int button, int state, int x, int y ) { GLuint namebuffer[256]; GLint hits; GLint myviewport[4]; if (button!= GLUT_LEFT_BUTTON state!= GLUT_DOWN) return; glgetintegerv( GL_VIEWPORT, myviewport ); glselectbuffer( 256, namebuffer ); (void) glrendermode( GL_SELECT ); glinitnames(); 144
145 Picking Template (cont.) glmatrixmode( GL_PROJECTION ); glpushmatrix(); glloadidentity(); glupickmatrix( (GLdouble) x, (GLdouble) (myviewport[3]-y), 5.0, 5.0, myviewport ); /* gluperspective or glortho or other projection */ glpushname( 1 ); /* draw something */ glloadname( 2 ); /* draw something else continue */ 145
146 Picking Template (cont.) glmatrixmode( GL_PROJECTION ); glpopmatrix(); hits = glrendermode( GL_RENDER ); /* process namebuffer */ } 146
147 Picking Ideas For OpenGL Picking Mechanism only render what is pickable (e.g., don t clear screen!) use an invisible filled rectangle, instead of text if several primitives drawn in picking region, hard to use z values to distinguish which primitive is on top Alternatives to Standard Mechanism color or stencil tricks (for example, use glreadpixels() to obtain pixel value from back buffer) 147
148 Getting to the Framebuffer Fragment Scissor Test Alpha Test Stencil Test Depth Test Blending Dithering Logical Operations Framebuffer 148
149 Scissor Box Additional Clipping Test glscissor( x, y, w, h ) any fragments outside of box are clipped useful for updating a small section of a viewport affects glclear() operations 149
150 Alpha Test CPU CPU Poly. Poly. Reject pixels based on their alpha value glalphafunc( func, value ) glenable( GL_ALPHA_TEST ) DL DL Pixel Pixel Per Per Vertex Vertex Texture Texture Raster Raster use alpha as a mask in textures Frag Frag FB FB 150
151 Stencil Buffer CPU CPU Poly. Poly. Used to control drawing based on values in the stencil buffer Fragments that fail the stencil test are not drawn Example: create a mask in stencil buffer and draw only objects not in mask area DL DL Pixel Pixel Per Per Vertex Vertex Texture Texture Raster Raster Frag Frag FB FB 151
152 Controlling Stencil Buffer glstencilfunc( func, ref, mask ) compare value in buffer with ref using func only applied for bits in mask which are 1 func is one of standard comparison functions glstencilop( fail, zfail, zpass ) Allows changes in stencil buffer based on passing or failing stencil and depth tests: GL_KEEP, GL_INCR 152
153 Creating a Mask glinitdisplaymode( GLUT_STENCIL ); glenable( GL_STENCIL_TEST ); glclearstencil( 0x0 ); glstencilfunc( GL_ALWAYS, 0x1, 0x1 ); glstencilop( GL_REPLACE, GL_REPLACE, GL_REPLACE ); draw mask 153
154 Using Stencil Mask Draw objects where stencil = 1 glstencilfunc( GL_EQUAL, 0x1, 0x1 ) Draw objects where stencil!= 1 glstencilfunc( GL_NOTEQUAL, 0x1, 0x1 ); glstencilop( GL_KEEP, GL_KEEP, GL_KEEP ); 154
155 Dithering glenable( GL_DITHER ) Dither colors for better looking results Used to simulate more available colors 155
156 Logical Operations on Pixels Combine pixels using bitwise logical operations gllogicop( mode ) Common modes GL_XOR GL_AND 156
157 Advanced Imaging Imaging Subset Only available if GL_ARB_imaging defined Color matrix Convolutions Color tables Histogram MinMax Advanced Blending 157
158 Ringkasan dan Penutup
159 On-Line Resources start here; up to date specification and lots of sample code news:comp.graphics.api.opengl Brian Paul s Mesa 3D very special thanks to Nate Robins for the OpenGL Tutors source code for tutors available here! 159
160 Buku OpenGL Programming Guide, 3 rd Edition OpenGL Reference Manual, 3 rd Edition OpenGL Programming for the X Window System includes many GLUT examples Interactive Computer Graphics: A topdown approach with OpenGL, 2 nd Edition 160
Tutorial 04 Modeling & Transformasi Proyeksi
Tutorial 04 Modeling & Transformasi Proyeksi Secara substansi, Grafika Komputer adalah proses transformasi dari model 3D obyek berupa informasi geometri bentuk, informasi pose, warna, texture, dan pencahayaan
BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM
BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM Pada bab ini akan dibahas implementasi bertujuan memastikan apakah aplikasi yang dibuat berjalan sesuai yang penulis harapakan. Sebelum program diimplementasikan
DIAN PRATIWI. ST, MTI
DIAN PRATIWI. ST, MTI PEMROGRAMAN GRAFIKA KOMPUTER BERBASIS OPENGL Diterbitkan melalui Nida Dwi Karya Publishing PEMROGRAMAN GRAFIKA KOMPUTER BERBASIS OPENGL Oleh: Dian Pratiwi, ST, MTI Copyright 2015
Tutorial 06. Texture Mapping & Blending
Tutorial 06. Texture Mapping & Blending Hingga tahap ini, geometric primitive digambar dengan warna solid atau warna hasil interpolasi warnawarna vertex-nya. Texture mapping memungkinkan untuk menaruh
Pewarnaan dan Perputaran Polygon Untuk Objek Gambar Segi Tiga dan Segi Empat Menggunakan Program OPENGL 32
Pewarnaan dan Perputaran Polygon Untuk Objek Gambar Segi Tiga dan Segi Empat Menggunakan Program OPENGL 32 Aqwam Rosadi Kardian, Bheta Agus Wardijono STMIK JAKARTA STI&K [email protected], [email protected]
BAB II LINGKUNGAN PEMROGRAMAN GRAFIK DENGAN OPEN GL
BAB II LINGKUNGAN PEMROGRAMAN GRAFIK DENGAN OPEN GL Pemrograman Grafis Pemrograman grafis adalah pemrograman yang digunakan untuk menghasilkan gambar pada komputer menggunakan library yang ada. Teknik-teknik
PETEMUAN KE-3 PRIMITIVE DRAWING 2
PETEMUAN KE-3 PRIMITIVE DRAWING 2 A.Tujuan 1. Dapat mengaplikasikan objek primitif dalam bentuk yang lain B. Dasar Teori Dalam praktikum sebelumnya anda diminta membuat titik garis, dan sebagainya. Dalam
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB. SHEET PRAKTIKUM GRAFIKA KOMPUTER
No. : ST/EKA/PTI275/05 Revisi : 02 1 P a g e A. Pendahuluan OpenGL akan melakukan komputasi warna setiap pixel di display akhir, ditampilkan adegan itu dilakukan di frame buffer. Bagian dari komputasi
Tabel 1 Perintah-perintah OpenGL yang telah dipraktekan
A. Pendahuluan Review Praktikum sebelumnya Sebelum ke modul selanjutnya, perhatikan sintak dibawah ini Tabel 1 Perintah-perintah OpenGL yang telah dipraktekan Perintah Arti Keterangan glvertex2i(x,y);
LAMPIRAN SOURCE CODE
DAFTAR PUSTAKA Anonim. www.opengl.org (diakses pada tanggal 01 Juli 2015). Fadlisyah, et al. 2007. Pengantar Grafika Komputer. Yogyakarta: Andi. Haemel, Nicholas, et al. 2011. OpenGL super bible : comprehensive
Tabel 1 Perintah-perintah OpenGL yang telah dipraktekan
No. : ST/EKA/PTI223/04 Revisi : 02 Senin 010210 Hal. 1 dari 8 hal. A. Pendahuluan Review Praktikum sebelumnya Sebelum ke modul selanjutnya, perhatikan sintak dibawah ini Tabel 1 Perintah-perintah OpenGL
apa yang terjadi?. Kemudian lakukan pengantian beberapa bagian seperti sintak
No. : ST/EKA/PTI223/02 Revisi : 02 Senin 010210 Hal. 1 dari 8 hal. A. Pendahuluan Dalam praktikum sebelumnya anda diminta membuat titik garis, dan sebagainya. Dalam praktikum hari ini lakukan penambahan
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB. SHEET PRAKTIKUM GRAFIKA KOMPUTER
No. : ST/EKA/PTI223/05 Revisi : 02 Senin 010409 Hal. 1 dari 8 hal. A. Pendahuluan OpenGL akan melakukan komputasi warna setiap pixel di display akhir, ditampilkan adegan itu dilakukan di frame buffer.
Tutorial 09. Lighting
Tutorial 09. Lighting Visualisasi tentu saja tidak akan terjadi bila tidak ada cahaya. Pencahayaan merupakan esensi dari visualisasi dan merupakan topik yang sangat kompleks. Hingga tahap ini lingkungan
BAB 2 TEORI PENUNJANG
BAB 2 TEORI PENUNJANG Pada tinjauan pustaka ini akan dibahas tentang teori teori penunjang dalam menyelesaikan proyek akhir ini. Beberapa teori penunjang pada proyek akhir ini adalah sebagai berikut :
Gambar 1. Viewport pada layar
No. : ST/EKA/PTI223/03 Revisi : 02 Hal. 1 dari 9 hal. A. Pendahuluan Transformasi adalah memindahkan objek tanpa merusak bentuk. Contoh transformasi adalah transisi, penskalaan, putaran/rotasi, balikan,
Pengenalan OpenGL. Sintax Perintah OpenGL. Library yang Berhubungan dengan OpenGL
Pengenalan OpenGL OpenGL adalah suatu graphic library yang sebagian bersifat open source, dipakai pada banyak platform (windows, linux) dan dapat digunakan pada berbagai jenis compiler seperti C++ atau
BAB IV IMPLEMENTASI DAN PENGUJIAN
BAB IV IMPLEMENTASI DAN PENGUJIAN 4.1 Implementasi Tahapan implementasi bertujuan untuk memastikan apakah aplikasi yang dibuat dapat bekerja secara efektif dan efisien sesuai dengan yang diharapkan. Sebelum
Gambar 1. Viewport pada layar
No. : ST/EKA/PTI223/03 Revisi : 03 Senin 010210 Hal. 1 dari 5 hal. A. Pendahuluan Transformasi adalah memindahkan objek tanpa merusak bentuk. Contoh transformasi adalah transisi, penskalaan, putaran/rotasi,
PETEMUAN KE-5 TRANSFORMASI-PANDANGAN (Viewing)
PETEMUAN KE-5 TRANSFORMASI-PANDANGAN (Viewing) A.Tujuan 1. Dapat menggambar objek 3D 2. Dapat mentransformasikan objek 3D 3. Dapat menggunkan glviewport,glmodelview, glprojection, glfrustum B. Dasar Teori
DAFTAR PUSTAKA. (diakses 1 maret 2016)
DAFTAR PUSTAKA [1] http://www.surakarta.go.id/konten/bus-tingkat-werkudara# (diakses 28 februari 2016) [2] Anonim. www.opengl.org (diakses 1 maret 2016) [3] Haemel, Nicholas, et al. 2011. OpenGL super
BAB 3 PERANCANGAN DAN PEMBUATAN. Engine akan dirancang agar memenuhi syarat maintainability, reusability dan
13 BAB 3 PERANCANGAN DAN PEMBUATAN 3.1 Perancangan Engine Engine akan dirancang agar memenuhi syarat maintainability, reusability dan usability. Maintainability berarti kode program engine harus mudah
Tutorial 08. Fog. mensimulasikan efek kabut membatasi ruang pandang pengguna agar komputasi grafis yang diperlukan dapat dibatasi.
Tutorial 08. Fog Kabut/fog adalah salah satu fitur OpenGL lain yang sering digunakan pada banyak kesempatan. Kabut digunakan dalam banyak kesempatan, antara lain: mensimulasikan efek kabut membatasi ruang
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB. SHEET PRAKTIKUM GRAFIKA KOMPUTER
No. : ST/EKA/PTI223/06 Revisi : 02 Senin 010509 Hal. 1 dari 9 hal. Pengantar Fog adalah pengaruh atmospheric yang ditambahkan objek, sehingga akan terjadi kekaburan pada obyek yang tergantung seberapa
ALGORITMA PERPOTONGAN OBJEK
ALGORITMA PERPOTONGAN OBJEK Ina Agustina, Fauziah Jurusan Sistem Informasi, Fakultas Teknologi Komunikasi dan Informatika, Universitas Nasional Jl. Sawo Manila, Pejaten Pasar Minggu No.61, Jakarta 12520
Pengenalan OpenGL. Sintax Perintah OpenGL. Library yang Berhubungan dengan OpenGL
Pengenalan OpenGL OpenGL adalah suatu graphic library yang sebagian bersifat open source, dipakai pada banyak platform (windows, linux) dan dapat digunakan pada berbagai jenis compiler seperti C++ atau
Grafika Komputer. Evangs Mailoa
Grafika Komputer Evangs Mailoa Kumpulan polygon atau permukaan yang secara bersama-sama membentuk kulit dari suatu obyek. Dinyatakan dengan daftar poligon-poligon yang disertai dengan arah dari permukaan
Serba Serbi Grafika Game
Serba Serbi Grafika Game Mengenal OpenGL Open Graphics Library is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics.
PEMBENTUKAN TRANSFORMASI OBJEK 2 DIMENSI DENGAN OPENGL
PEMBENTUKAN TRANSFORMASI OBJEK 2 DIMENSI DENGAN OPENGL Ina Agustina, Fauziah Jurusan Sistem Informasi Universitas Nasional Jl. Sawo Manila No.61 Pasar Minggu E-Mail : [email protected], [email protected]
Transformasi Obyek (Lanjutan)
Transformasi Obek (Lanjutan) Grafika Komputer Semester Ganjil 28 Teknik Informatika ITS Ann Yuniarti - 28 Kompetensi. Mampu memahami konsep transformasi 3D 2. Mampu mengimplementasikan konsep transformasi
PENGANTAR GRAFIKA KOMPUTER
PENGANTAR GRAFIKA KOMPUTER Achmad Basuki Nana Ramadijanti Achmad Basuki, Nana Ramadijanti - Laboratorium Computer Vision Politeknik Elektronika Negeri Surabaya (PENS-ITS) Materi Pengenalan grafika komputer
Viewing 3D. Tujuan: memberi kesan pada viewer bahwa ia melihat foto 3D dengan cara yg sama saat kita memotret obyek 3D ke film 2D.
Komputer Grafik 1 Viewing 3D Tujuan: memberi kesan pada viewer bahwa ia melihat foto 3D dengan cara yg sama saat kita memotret obyek 3D ke film 2D. memproyeksikan obyek 3D ke bidang 2D 2 Pinhole Camera
BAB 2 DASAR TEORI. Pada bagian ini akan dibahas tentang teori dasar dari grafika komputer, yang
BAB 2 DASAR TEORI 2.1 Teori Dasar Grafika Komputer Pada bagian ini akan dibahas tentang teori dasar dari grafika komputer, yang akan digunakan dalam pembahasan teknik environment mapping. 2.1.1 Sistem
3D STUDIO MAX. Setting awal 3D Studio Max 9
3D STUDIO MAX Setting awal 3D Studio Max 9 1. Untuk kerja yang leluasa, aturlah resolusi desktop windows anda setinggi mungkin di Control Panel Display. Disarankan menggunakan monitor 17 atau lebih besar.
IMPLEMENTASI OPEN GL32 UNTUK MEMANIPULASI GAMBAR SEGITIGA DAN SEGIEMPAT
IMPLEMENTASI OPEN GL32 UNTUK MEMANIPULASI GAMBAR SEGITIGA DAN SEGIEMPAT Agung Slamet Riyadi, Universitas Gunadarma, Jl. Margonda Raya No. 100 Pondok Cina Depok Jawa Barat e-mail [email protected]
TUGAS 2 RESUME Open GL Programming Guide Bab 9 Texture Mapping. Dosen Irfan Maliki, S.T., M.T..
TUGAS 2 RESUME Open GL Programming Guide Bab 9 Texture Mapping Dosen Irfan Maliki, S.T., M.T.. Oleh: Dian Gunawan (10111067) Riky Lutfi Hamzah (10111213) Arief Hidayat Sutomo (10111241) Nyoman Aditya Kusuma
OBJECT ORIENTED PROGRAMMING. Day 3 : Operator dan Assignment
OBJECT ORIENTED PROGRAMMING Day 3 : Operator dan Assignment TOPIK Membedakan antara instance dan local l variabel. Urutan pemrosesan Unary operator Arithmetic operator Shift operator: , dan >>> Comparison
Session #1. 1.introducing 3ds max.
Materi: 1. introducing 3ds max. 2. basic text. 3. bevel. 4. extrude. 5. mapping. 6. lightning. 7. rendering. 8. importing vector from illustrator. 1.introducing 3ds max. Session #1 diatas adalah tampilan
Basic 3D Modelling dan Animasi Menggunakan 3DS MAX
Basic 3D Modelling dan Animasi Menggunakan 3DS MAX 3ds max 2010 adalah program tiga dimensi dari perusahaan Autodesk yang memiliki banyak kelebihan. Fitur baru dan tampilannya menjadi daya tarik tersendiri
Materi 2 Membuat Lemari, Membuat Pintu Lemari, Memindahkan Pintu Lemari, Meng-Copy Pintu Lemari, Mengolah Bukaan Pintu Lemari, Membuat Lantai
3D Graphic Architecture - 1 04 POKOK BAHASAN Materi 2 Membuat Lemari, Membuat Pintu Lemari, Memindahkan Pintu Lemari, Meng-Copy Pintu Lemari, Mengolah Bukaan Pintu Lemari, Membuat Lantai Materi Ini Bertujuan
Praktikum Komputer Grafik [MODUL] Genap 2012/2013. Laboratorium Multimedia 1/35
Praktikum Komputer Grafik [MODUL] Genap 2012/2013 1/35 KONTRAK PRAKTIKUM Nama Mata Kuliah : Praktikum Komputer Grafik Kode Mata Praktikum : TIF121 SKS : 1 Mata Kuliah Prasyarat : - Dosen Penanggung Jawab
Set Instruksi. Set Instruksi. Set Instruksi adalah kumpulan
Bab 10 Disusun Oleh : Rini Agustina, S.Kom, M.Pd Definisi: lengkap instruksi yang dapat adalah kumpulan dimengerti CPU Sifat2: 1. Merupakan Kode Mesin 2. Dinyatakan dalam Biner 3.Biasanya digunakan dalam
Line VS Bezier Curve. Kurva Bezier. Other Curves. Drawing the Curve (1) Pertemuan: 06. Dosen Pembina Danang Junaedi Sriyani Violina IF-UTAMA 2
Line VS Bezier Curve Kurva Bezier Pertemuan: 06 Dosen Pembina Danang Junaedi Sriyani Violina IF-UTAMA 1 IF-UTAMA 2 Other Curves Drawing the Curve (1) IF-UTAMA 3 IF-UTAMA 4 1 Drawing the Curve (2) Algoritma
Outline. Struktur Data & Algoritme (Data Structures & Algorithms) Pengantar. Definisi. 2-3 Trees
Struktur Data & Algoritme (Data Structures & Algorithms) 2-3 Trees Outline Pengantar Definisi 2-3 Tree Operasi: Search Insert Delete (a,b)-tree Denny ([email protected]) Suryana Setiawan ([email protected])
/*Bismillahirrohmanirrohim _Fatimah_Rombel 2_Projek_Akhir_Komgraf*/ #include <stdio.h> #include <stdlib.h> #include <string.
/*Bismillahirrohmanirrohim.. 5302413025_Fatimah_Rombel 2_Projek_Akhir_Komgraf*/ #include #include #include #include "SOIL.h" #include float z_pos = -5.0f; float
BAB III ANALISA DAN PERANCANGAN
BAB III ANALISA DAN PERANCANGAN III.1. Analisa Pengertian secara umum, animasi adalah menghidupkan dari sistem nyata yang dikerjakan secara manual atau komputer yang kemudian di observasi dan disimpulkan
Finishing Pemodelan Objek 3D
BAB 2 Finishing Pemodelan Objek 3D 2.1 Finishing Desain Objek Untuk bisa mempresentasikan dengan bagus dan realistis sebuah desain objek 3D, perlu dilakukan beberapa hal penting dalam proses finishing.
Contoh: tanpa & dengan texture mapping
Contoh: tanpa & dengan texture mapping Texture Mapping Memetakan peta tekstur 2D (2D texture map) ke permukaan objek kemudian memproyeksikannya ke bidang proyeksi (projection plane) Teknik: Forward mapping
1/5. while and do Loops The remaining types of loops are while and do. As with for loops, while and do loops Praktikum Alpro Modul 3.
Judul TIU TIK Materi Modul Perulangan Ganjil 204/205 Mahasiswa memahami Konsep Perulangan. Mahasiswa mampu menggunakan perintah perulangan For, While do, do While 2. Mahasiswa mampu menggunakan perintah
Pemrograman Lanjut. Interface
Pemrograman Lanjut Interface PTIIK - 2014 2 Objectives Interfaces Defining an Interface How a class implements an interface Public interfaces Implementing multiple interfaces Extending an interface 3 Introduction
J U R N A L I L M I A H KOMPUTASI
Volume 10 No : 2 ISSN Nomor : 1412-9434 2011 J U R N A L I L M I A H KOMPUTASI Komputer & Sistem Informasi 1-11 Arsitektur Mikroprosesor Berbasiskan Perangkat Lunak SPARC Sunny Arief Sudiro, Dwi Putra
Grafik Komputer : Konsep 3 Dimensi
Grafik Komputer : Konsep 3 Dimensi Universitas Gunadarma 2006 Grafik Komputer : Konsep 3D 1/10 Alur Proses Grafik Komputer 3D (1/2) Penetapan ruang model. Transformasi model adalah menempatkan model pada
MODUL 9 Material Texture
MODUL 9 Material Texture A. KOMPETENSI DASAR Memahami Inisialisasi Material Texture Memahami Texture Mapping. Memahami dasar menampilkan susunan obyek yang dilengkapi dengan texture mapping. B. ALOKASI
Shading. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico
Shading Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico 1 Objectives Mempelajari teknik shading pada objek sehingga images dapat ditampilkan
Gambar 1. Contoh tekstur makrostruktur
No. : ST/EKA/PTI223/08 Revisi : 02 Senin 010510 Hal. 1 dari 14 hal. Pengantar Tekstur adalah tampilan permukaan (corak) dari suatu benda yang dapat dinilai dengan cara dilihat atau diraba. Pada prakteknya,
Pemodelan Objek Pena Cantik 3D
DISCLAIMER Seluruh dokumen E-Trik di dalam CD ini dapat digunakan dan disebarkan secara bebas untuk tujuan belajar bukan komersial (non-profit), dengan syarat tidak menghapus atau merubah atribut penulis
Bekasi, Desember 2006
Kata Pengantar 3DS Max adalah program untuk modeling, rendering, dan animasi yang memungkinkan Anda untuk mempresentasikan desain Anda, seperti desain interior, arsitektur, dan iklan, secara realistik
Arsitektur Komputer. Pertemuan ke-2 - Aritmatika Komputer >>> Sistem bilangan & Format Data - Perkembangan Perangkat Keras Komputer
Arsitektur Komputer Pertemuan ke-2 - Aritmatika Komputer >>> Sistem bilangan & Format Data - Perkembangan Perangkat Keras Komputer ARITMATIKA KOMPUTER Materi : Englander, bab 2 dan 3 Stallings, bab 8 IEEE
BAB 1 Pengenalan 3ds Max
BAB 1 Pengenalan 3ds Max 1.1 Rekomendasi Sistem Komputer 3ds max merupakan program permodelan 3 dimensi yang lebih komunikatif, baik desain produk maupun periklanan. Agar bisa bekerja dengan baik, tentunya
Pemodelan Objek Monitor 3D
DISCLAIMER Seluruh dokumen E-Trik di dalam CD ini dapat digunakan dan disebarkan secara bebas untuk tujuan belajar bukan komersial (non-profit), dengan syarat tidak menghapus atau merubah atribut penulis
TUTORIAL AUTODESK 3DS MAX 2011 MEMBUAT BALON ANEKA WARNA 3 DIMENSI
MEMBUAT BALON ANEKA WARNA 3 DIMENSI Gambar 1. Balon Aneka Warna Untuk membuat balon aneka warna dengan Autodesk 3DS max 2011 ada beberapa langkah yang harus kita lakukan. Dalam langkah-langkah tersebut
TIU: Mahasiswa mampu menghasilkan aplikasi Komputer Grafik sederhana. Pemrograman OpenGL API dasar 2 dimensi. Penggunaan aplikasi pengolah grafis 3D
Matakuliah : Komputer Grafik Dosen : Yonathan Ferry Hendrawan ThAkad : 2013-2014 Semester : Genap (empat) Prodi : S1 Teknik Informatika KONTRAK KULIAH 1. Manfaat Matakuliah Dengan mengambil mata kuliah
William Stallings Computer Organization and Architecture. Chapter 9 Set Instruksi: Karakteristik dan Fungsi
William Stallings Computer Organization and Architecture Chapter 9 Set Instruksi: Karakteristik dan Fungsi 1 Set instruksi? Kumpulan instruksi lengkap yang dimengerti oleh CPU Kode mesin Biner Kode assembly
OPENGL DALAM MICROSOFT VISUAL STUDIO EXPRESS Created by: Gideon
OPENGL DALAM MICROSOFT VISUAL STUDIO EXPRESS 2012 Created by: Gideon Tutorial Open GL untuk membuat garis dengan program Microsoft Visual Studio Express 2012 OpenGL dengan Microsoft Visual Express 2012
ARSITEKTUR KOMPUTER SET INSTRUKSI
LOGO ASSALAMU ALAIKUM ARSITEKTUR KOMPUTER SET INSTRUKSI Disajikan Oleh : RAHMAD KURNIAWAN, S.T., M.I.T. TEKNIK INFORMATIKA UIN SUSKA RIAU Karakteristik dan Fungsi Set Instruksi Operasi dari CPU ditentukan
Sistem Multimedia. Image. Donny Reza, S.Kom
Sistem Multimedia Image Donny Reza, S.Kom Image/Citra Image: representasi grafis dan visual dari suatu informasi yang dapat ditampilkan dalam layar komputer atau dicetak Berbagai bentuk image: Foto Gambar
Topik bahasan: 1. Membuat objek mudah dan kompleks dengan jaring poligon 2. Merender jaring poligon sebagai wireframe dan atau pejal dengan OpenGL
Grafika-5 Pemodelan 3D dengan Jaring Poligon Tujuan Materi: Setelah mempelajari bab ini, Anda diharapkan dapat menjelaskan secara ringkas bagaimana membentuk objek 3D dengan jaring poligon (polygon meshes)
Praktikum Komputer Grafik [MODUL] Genap 2013/2014. Laboratorium Multimedia 1/47
Praktikum Komputer Grafik [MODUL] Genap 2013/2014 1/47 KONTRAK PRAKTIKUM Nama Mata Kuliah : Praktikum Komputer Grafik Kode Mata Praktikum : TIF121 SKS : 1 Mata Kuliah Prasyarat : - Dosen Penanggung Jawab
What is it? 3 x 4 Keypad 4 x 4 Keypad
KEYPAD & LCD What is it? 3 x 4 Keypad 4 x 4 Keypad Identifikasi Pin Keypad Pada keypad 3x4, terdapat 14 pin. Tidak semua pin digunakan. Library Keypad di Arduino Library keypad di arduino memiliki sifat
Operator dan Assignment. Pertemuan 3 Pemrograman Berbasis Obyek
Operator dan Assignment Pertemuan 3 Pemrograman Berbasis Obyek Topik Unary operator Arithmetic operator Shift operator: , dan >>> Comparison operator Bitwise operator: &, ^, dan. Short Circuit operator
BAB 3 User Interface. 3.1 Sekilas Tentang Blender
BAB 3 User Interface 3.1 Sekilas Tentang Blender Blender merupakan salah satu FOSS (Free & Open Source Software) yang cukup pesat perkembangannya. Berdasarkan Roncarelli Report, Blender telah diunduh 1,8
WELCOME TO BLENDER WORLD
WELCOME TO BLENDER WORLD Adhicipta R. Wirawan Co-Founder Komunitas Blender Indonesia http://blenderindonesia.org/forum 1. WHAT IS A BLENDER 3D? Ton Roosendaal Open Movie >> Elephant Dream, Big Buck Bunny,
Kumpulan instruksi lengkap yang dimengerti
Set Instruksi: 1 Set instruksi? Kumpulan instruksi lengkap yang dimengerti oleh CPU Operasi dari CPU ditentukan oleh instruksiinstruksi yang dilaksanakan atau dijalankannya. Instruksi ini sering disebut
ANALISA TEKNIK CUBE MAPPING BERBASIS OPENGL
ANALISA TEKNIK CUBE MAPPING BERBASIS OPENGL Yohan Angjaya A11.2006.02722 Program Studi Ilmu Komputer Universitas Dian Nuswantoro Semarang ABSTRAK Tulisan ini berisi tentang analisa Cube Mapping berbasis
TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java
TUJUAN Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java 2 TODAY S MENU Pengenalan library JDBC Diagram pengaksesan database melalui JDBC Step-by-step
BAB III ANALISA DAN DESAIN SISTEM
BAB III ANALISA DAN DESAIN SISTEM III.1. Analisa Sistem Yang Sedang Berjalan Perancangan animasi ini yaitu tentang perkenalan objek wisata yang ada di pulau Nias. Yang kita ketahui pulau Nias memiliki
Data Structures. Class 5 Pointer. Copyright 2006 by The McGraw-Hill Companies, Inc. All rights reserved.
Data Structures Class 5 Pointer McGraw-Hill Technology Education Copyright 2006 by The McGraw-Hill Companies, Inc. All rights reserved. What is a variable? 1. Each variable must be defined before you can
Adam Hendra Brata Teknik Informatika FILKOM UB Semester Genap 2015/2016
Adam Hendra Brata Teknik Informatika FILKOM UB Semester Genap 2015/2016 TUJUAN PERKULIAHAN Memahami pemodelan perancangan dengan pendekatan berorientasi objek AGENDA PERKULIAHAN Pemodelan perancangan berorientasi
BAB III ANALISA DAN PERANCANGAN
BAB III ANALISA DAN PERANCANGAN III.1. Analisa Pengertian secara umum, animasi adalah menghidupkan dari sistem nyata yang dikerjakan secara manual atau komputer yang kemudian di observasi dan disimpulkan
ANALISIS PEMODELAN 3D PESAWAT TERBANG
ANALISIS PEMODELAN 3D PESAWAT TERBANG ANALISIS PEMODELAN 3D PESAWAT TERBANG Nurcahyani Dewi Retnowati Prodi Teknik Informatika Sekolah Tinggi Teknologi Adisutjipto Yogyakarta [email protected] Abstrak
BAB III ANALISA DAN PERANCANGAN
BAB III ANALISA DAN PERANCANGAN III.1. Analisa Masalah Pengertian secara umum, animasi adalah suatu kegiatan menghidupkan, menggerakkan benda mati, dimana benda mati tersebut diberikan dorongan kekuatan
Arsitektur dan Organisasi Komputer Set Intruksi
5/21/2015 Arsitektur dan Organisasi Komputer Set Intruksi 1 Set instruksi? Kumpulan instruksi lengkap yang dimengerti oleh CPU Kode mesin Biner Kode assembly Gembong Edhi Setyawan s1 / TI / semester 3
Martil. Gambar 5.1. Animasi Martil yang Sedang Memaku Kayu. Berikut langkah-langkah pembuatannya.
Martil Pada bab ini kita akan membuat animasi martil yang sedang memaku. Gerakan martil dan paku terjadi secara berulang sampai paku benar-benar menancap sepenuhnya dalam kayu. Gambar 5.1. Animasi Martil
.NET Controls. Control Creation
.NET Controls Pemrograman Visual (TH22012 ) by Kartika Firdausy 081.328.718.768 [email protected] [email protected] blog.uad.ac.id/kartikaf kartikaf.wordpress.com Control Creation A Windows control
Laboratorium Teknologi Informasi & Aplikasi. Praktikum Komputer Grafik [MODUL] Genap 2014/2015. Lab TIA 1/58
Laboratorium Teknologi Informasi & Aplikasi Praktikum Komputer Grafik [MODUL] Genap 2014/2015 1/58 KONTRAK PRAKTIKUM Nama Mata Kuliah : Praktikum Komputer Grafik Kode Mata Praktikum : TIF121 SKS : 1 Mata
DAFTAR ISI TOOLBAR SOLID TOOLBAR SHADE TOOLBAR 3D ORBIT TOOLBAR SURFACE TOOLBAR SOLIDS EDITING TOOLBAR MODIFY II TOOLBAR VIEW TOOLBAR TOOLBAR UCS
DAFTAR ISI TOOLBAR SOLID TOOLBAR SHADE TOOLBAR 3D ORBIT TOOLBAR SURFACE TOOLBAR SOLIDS EDITING TOOLBAR MODIFY II TOOLBAR VIEW TOOLBAR TOOLBAR UCS TOOLBAR RANDER TOOLBAR SOLIDS Box. Fungsi : untuk membuat
LAPORAN PRATIKUM KOMPUTER APLIKASI
LAPORAN PRATIKUM KELAS TI VI SORE D KOMPUTER APLIKASI Nama Nomor Pratikan Mahasiswa Ayu MayaSari 1214370278 Tanggal Kumpul Tanda Tangan Pratikan Nama Penilai Tanggal Nilai Tanda Tangan Koreksi Dosen Universitas
Sistem Komputer. Suprayogi,M.Kom Fakultas Ilmu Komputer UDINUS
Sistem Komputer Suprayogi,M.Kom Fakultas Ilmu Komputer UDINUS Hardware & Software Hardware Perangkat/komponen-komponen fisik yang saling bekerja sama dalam membentuk komputer. Software Perangkat lunak/program
Pemodelan Gelas, Botol, & Meja 3d (3ds Max Modeling Tutorial)
Pemodelan Gelas, Botol, & Meja 3d (3ds Max Modeling Tutorial) A. Membuat Model Gelas 3d 1. Buatlah sebuah Plane klik Create > Geometry > Plane dan sesuaikan ukuran Plane dengan gambar gelas yang akan dijadikan
Data Structures. Class 4 Arrays. Pengampu : TATI ERLINA, M.I.T. Copyright 2006 by The McGraw-Hill Companies, Inc. All rights reserved.
Data Structures Class 4 Arrays Pengampu : TATI ERLINA, M.I.T. McGraw-Hill Technology Education Copyright 2006 by The McGraw-Hill Companies, Inc. All rights reserved. DESKRIPSI Bayangkan jika kita memiliki
MATERI : Create : AEC Extended : Wall, Stairs, Door, Windows Modifier : Bevel Material : Multi - Sub / Object, Matte / Shadow
PENDAHULUAN Dalam pembuatan desain rumah bertingkat dengan komponen arsitektur seperti dinding, pintu, jendela, tangga, dll. Tingkat presisi diatur agar menyerupai AutoCad sehingga bangunan tampak menyatu
BAB III ANALISA DAN PERANCANGAN
25 BAB III ANALISA DAN PERANCANGAN III.1. Analisa Pembuatan kompos adalah murni sebagai usaha petani untuk memberikan nutrisi bagi tanaman secara stabil dengan memanfaatkan limbah. Limbah tersebut dapat
Data Structures. Class 3 Pengenalan Struktur Data dan ADT. Copyright 2006 by The McGraw-Hill Companies, Inc. All rights reserved.
Data Structures Class 3 Pengenalan Struktur Data dan ADT McGraw-Hill Technology Education Copyright 2006 by The McGraw-Hill Companies, Inc. All rights reserved. I will, in fact, claim that the difference
GRAFIK KOMPUTER & PENGOLAHAN CITRA
GRAFIK KOMPUTER & PENGOLAHAN CITRA MEMBUAT GARIS MENGGUNAKAN OPENGL NAMA : ADRY FITRA AZHAR SIREGAR NPM : 10114361 KELAS : 3KA26 UNIVERSITAS GUNADARMA SISTEM INFORMASI PTA 2016 / 2017 PENGENALAN OPENGL
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB. SHEET PRAKTIKUM GRAFIKA KOMPUTER
A. Pendahuluan Objek 3D pada open GL merupakan objek yang lebih hidup dibandingkan objek 2D. Namun permukaan objek 3D yang polos membuat 3D cenderung kurang menarik dan kaku. Untuk membuat objek yang lebih
BAB III ANALISA DAN DESAIN SISTEM
BAB III ANALISA DAN DESAIN SISTEM III.1. Analisa Pengertian secara umum, animasi adalah menghidupkan dari sistem nyata yang dikerjakan secara manual atau komputer yang kemudian di observasi dan disimpulkan
BAB 2 FASILITAS BANTU GAMBAR
BAB 2 FASILITAS BANTU GAMBAR 2.1 Quick Properties Quick Properties adalah fasilitas untuk menampilkan informasi properties yang terdapat pada tiap-tiap objek secara umum, sehingga bisa mempermudah untuk
Gasal 2011/2012 KOMPUTER GRAFIK (3SKS)
Gaal 2/22 KOMPUTER GRAFIK (3SKS) CucunVer Angkoo,ST,MT :: Pertemuan ke :: General Tranformation A tranformation map point to other point and/or ector to other ector QT(P) 3 TRANSFORMASI 2D A Matrik Tranformai
Pertemuan 6-7 : Set Instruksi
Pertemuan 6-7 : Set Instruksi Operasi dari CPU ditentukan olehi nstruksiinstruksi yang dilaksanakan atau dijalankannya. Instruksi ini sering disebut sebagai instruksi mesin (mechine instructions) atau
PERTEMUAN MINGGU KE-5 ARSITEKTUR SET INSTRUKSI
PERTEMUAN MINGGU KE-5 ARSITEKTUR SET INSTRUKSI KARAKTERISTIK DAN FUNGSI SET INSTRUKSI Operasi dari CPU ditentukan oleh instruksiinstruksi yang dilaksanakan atau dijalankannya. Instruksi ini sering disebut
