Transformasi dapat dilakukan pada level vertex, surface, atau objek tergantung pada posisinya dalam program. Urutan transformasi mempengaruhi hasil akhir karena operasi transformasi bersifat non-komutatif. Program mendemonstrasikan pengaruh perbedaan urutan rotasi dan translasi terhadap kubus 3D dengan menggunakan depth buffering untuk menghilangkan permukaan tersembunyi.
Techarea adalah perusahaan di bidang IT & Business Development berasal dari Semarang. Kami juga memberikan pelayanan servis dan jasa di berbagai segi project. Kami memiliki tim yang mempunyai pasion di bidang Software Engineering. Kami selalu memberikan hasil yang lebih dari yang Anda inginkan. Kami selalu bekerja keras untuk memberikan yang terbaik.
Perintah perintah dasar linux Operating SistemRoziq Bahtiar
presentation about base command line interface linux
please see in this link
http://roziq.com/perintah-perintah-dasar-linux-dan-konfigurasi-ip-address-cli/
Techarea adalah perusahaan di bidang IT & Business Development berasal dari Semarang. Kami juga memberikan pelayanan servis dan jasa di berbagai segi project. Kami memiliki tim yang mempunyai pasion di bidang Software Engineering. Kami selalu memberikan hasil yang lebih dari yang Anda inginkan. Kami selalu bekerja keras untuk memberikan yang terbaik.
Perintah perintah dasar linux Operating SistemRoziq Bahtiar
presentation about base command line interface linux
please see in this link
http://roziq.com/perintah-perintah-dasar-linux-dan-konfigurasi-ip-address-cli/
eigen merupakan vector yang membuat image 1 dengan image yang lain berbeda sehingga dapat digunakan untuk mengenali image, hal ini biasa digunakan untuk melakukan proses recognition seperti pengenalan wajah dan lain sebagainya
1. Tutorial 05
Urutan Transformasi
Transformasi dapat dilakukan pada level vertex, level surface, maupun level obyek bergantung dimana
transformasi diletakkan dalam program. Operasi transformasi merupakan operasi yang tidak bersifat
komutatif, artinya, urutan transformasi juga sangat berpengaruh pada hasilnya. Gambar di bawah ini
memberi ilustrasi akibat urutan transformasi yang berbeda, yaitu hasil operasi “rotasi kemudian di
translasi” berbeda dengan operasi “translasi baru dirotasi”.
Program 08 di bawah ini mirip dengan Program 07, hanya sekarang obyeknya sudah berupa obyek 3D
berupa kubus. Perhatikan bagaimana kubus dibentuk dari vertex dan surface. Selain dengan
mendefinisikan obyeknya sendiri, GLUT telah menyediakan beberapa fungsi untuk menggambar
standard obyek, yaitu kubus, bola, dan poci teh. Perhatikan apa yang terjadi bila glTranslate() dan
glRotate() di fungsi mydisplay() ditukar posisinya atau diletakkan didalam salah satu
glBegin()....glEnd()
2. // OpenGL
// Program 08
// - Complex Object
// - Notice:
// 1. There are surfaces that are not correctly rendered in order.
// uncommented the GL_DEPTH
// 2. Flicker can be eliminated by using GL_DOUBLE
// Rubah rendering algoritma dengan menggunakan data struktur
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <GL/glut.h>
float z_pos = -10.0f;
float rot = 0.0f;
void init(void);
void myKeyboard(unsigned char, int, int);
void myDisplay(void);
void myTimeOut(int);
void resize(int, int);
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutInitWindowSize(500, 500);
glutInitWindowPosition(0, 0);
glutCreateWindow("3D Transformation");
// callbacks register
glutDisplayFunc(myDisplay);
glutKeyboardFunc(myKeyboard);
glutTimerFunc(100, myTimeOut, 0);
glutReshapeFunc(resize);
init();
glutMainLoop();
return 0;
}
void init(void)
{
glEnable(GL_DEPTH_TEST);
glClearColor(0.0, 0.0, 0.0, 1.0); // A background clear color
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0, (GLdouble)500.0 / (GLdouble)500.0, 0.0, 100.0);
glMatrixMode(GL_MODELVIEW);
}
void myDisplay(void)
4. {
switch(key)
{
case '<':
case ',':
z_pos -= 0.1f;
break;
case '>':
case '.':
z_pos += 0.1f;
break;
}
}
void myTimeOut(int id)
{
// called if timer event
// ...advance the state of animation incrementally...
rot += 10;
glutPostRedisplay(); // request redisplay
glutTimerFunc(100, myTimeOut, 0); // request next timer event
}
void resize(int width, int height)
{
glViewport(0, 0, (GLsizei)width, (GLsizei)height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0, (GLdouble)width / (GLdouble)height, 1.0, 300.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
Tambahan:
Konsep Depth Buffer. Mode display pada program di atas diberi tambahan mode GLUT_DEPTH dan
perintah glEnable(GL_DEPTH_TEST). Hal ini untuk memastikan bahwa surface digambar sesuai
dengan urutan penampakkan yang logis. Teknik ini merupakan salah satu algoritma HIDDEN
SURFACE REMOVAL. Untuk melihat apa yang terjadi bila teknik ini tidak dilakukan,
hapus/commented moda GLUT_DEPTH dan glEnable(GL_DEPTH_TEST).