티스토리 툴바

블로그 이미지
"변화의 시기에는 배우려고 하는 이들이 세상을 차지합니다"

카테고리

분류 전체보기 (386)
매쉬업 (23)
Flash Platform (131)
AJIT (8)
Mobile (5)
JAVASCRIPT (33)
OpenAPI (5)
RIA (10)
Front-End (2)
Back-End (16)
SQL (2)
낙서장 (137)
TOOLs (4)
Total226,655
Today54
Yesterday86
Statistics Graph

A JavaScript Toolkit for creating Desktop Hardware Accelerated Graphics with JS. V8-GL Project


구글의 크롬 엔진과 같은 V8엔진에  OpenGL API를 컨버팅하는 프로젝트로 현재 80%정도 작업이 완료되었다는 군요. 구글이 자바스크립트 엔진에 손댈 때부터 알아봤습니다.. 이제 시작일 뿐입니다.. 멋지네요..

브라우저의 주도권을 잡고 있는 파폭,IE 긴장해야 할겁니다... 크롬의 목표는 웹OS라는 점을 잊지 말아야 할 것입니다.

http://github.com/philogb/v8-gl/tree/master#readme


//Add array iteration method
Array.prototype.each = function(f) {
    var len = this.length;
    for ( var i = 0; i < len; i++) f(this[i]);
};

//Initializes 3D rendering
function initRendering() {
    "DEPTH_TEST COLOR_MATERIAL LIGHTING LIGHT0 NORMALIZE COLOR_MATERIAL"
        .split(" ").each(function(elem) {
        Gl.Enable(Gl[elem]);
    });
}

//global angle variable
var angle = 0;

//Draws the 3D scene
function drawScene() {
    //Set global color and drawing properties
    Gl.Clear(Gl.COLOR_BUFFER_BIT | Gl.DEPTH_BUFFER_BIT);
    Gl.MatrixMode(Gl.MODELVIEW); 
    Gl.LoadIdentity();
    Gl.Translatef(0.0, 0.0, -5.0);
    //Set diffuse and positioned lights
    Gl.LightModelfv(Gl.LIGHT_MODEL_AMBIENT, [0.3, 0.3, 0.3, 1.0]);
    Gl.Lightfv(Gl.LIGHT0, Gl.DIFFUSE, [0.4, 0.4, 0.4, 1.0]);
    Gl.Lightfv(Gl.LIGHT0, Gl.POSITION, [5.0, 5.0, 5.0, 1.0]);
    //Rotate and plot Icosahedron
    Gl.Rotatef(angle, 1.0, 1.0, 1.0);
    Gl.Color3f(0.5, 0.0, 0.8);
    Glut.SolidIcosahedron(2.5);
    //Render
    Glut.SwapBuffers(); 
}

(function() {
    //Initialize Glut
    Glut.Init();
    Glut.InitDisplayMode(Glut.DOUBLE | Glut.RGB | Glut.DEPTH);
    Glut.InitWindowSize(400, 400); //Set the window size
    //Create the window
    Glut.CreateWindow("OpenGL on V8 baby!");
    initRendering();
    //Set drawing callback
    Glut.DisplayFunc(drawScene);
    //Set resize window callback
    Glut.ReshapeFunc(function(w, h) {
        var gl = { 'Viewport': [0, 0, w, h], 'MatrixMode': [Gl.PROJECTION], 'LoadIdentity': [] };
        for (var i in gl) Gl[i].apply(this, gl[i]);
        Glu.Perspective(45.0, w / h, 1.0, 200.0);
    });
    //Set timeout callback
    Glut.TimerFunc(25, function() {
        angle += 2.0;
        if (angle > 360) angle -= 360;
        Glut.PostRedisplay();
        Glut.TimerFunc(25, arguments.callee, 0);
    }, 0);
    //Start the main loop.
    Glut.MainLoop();
})();
Posted by lovedev
TAG

Trackback | http://lovedev.tistory.com/trackback/465 관련글 쓰기

댓글을 달아 주세요

  1. 2009/07/01 13:59 Favicon of http://adnaru.com BlogIcon 희희덕덕  댓글주소  수정/삭제  댓글쓰기

    우와 정말 멋지군요.
    FF와 IE 제대로 긴장해야겠는데요? ㅎㅎ

    요즘 잘 지내시나요? ㅎㅎ 작년이후론 뵙질못해서 ㅜㅜ... 얼릉 뵙고싶어요 ㅋㅋ
    나중에 정웅님네 사무실에 놀러갈때 연락드릴게요~

  2. 2009/07/09 15:28 Favicon of http://blog.jidolstar.com BlogIcon 지돌스타  댓글주소  수정/삭제  댓글쓰기

    저도 긴장되는군요. ㅋㅋ

  3. 2010/06/03 13:08 v8조사단  댓글주소  수정/삭제  댓글쓰기

    안녕하세요? 지금 구글 v8에 대해 조사하면서 들렀는데 위의 그림이 어떠한 소스인가요?

최근에 달린 댓글

최근에 받은 트랙백

달력

« » 2012.05
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

글 보관함