• Thứ Hai, 31/10/2005 16:17 (GMT+7)

    OpenGL

    Định nghĩa: OpenGL là một thư viện mã nguồn mở về các tính năng đồ họa, do một tập đoàn công nghiệp quản lý, nhằm cung cấp đặc tả đa hệ thống cho việc dựng hình và tăng tốc phần cứng đối với hình ảnh 3 chiều.

    Lập trình viên đồ hoạ 3 chiều bằng phần cứng hay phần mềm thường gặp phiền toái là phải xây dựng lại các giải thuật và mã chương trình phức tạp cho những thủ tục thường gặp mỗi khi phát triển ứng dụng.

    Silicon Graphics Inc. cho ra đời OpenGL cuối những năm 1980 nhằm mục đích giải phóng nhà phát triển khỏi những công việc nhàm chán kể trên.

    Nhà hát vũ trụ tại Hayden Planetarium với trạm làm việc SGI Onyx2 28 bộ xử lý, có 7 phân hệ InfiniteReality2, tạo nên mô hình ba chiều của dải Ngân Hà lớn hơn 100.000 lần so với khả năng của máy chiếu thông thường.

    OpenGL là một thư viện mã nguồn mở về các thủ tục đã được chuẩn hoá đối với các tính năng ba chiều, mỗi tính năng lại bao gồm các phương trình toán học và những phép tính phức tạp.

    Thư viện có những thủ tục phục vụ cho các tính năng đồ họa thông thường như: xây dựng các bề mặt ba chiều từ những tam giác cực nhỏ, tạo cho bề mặt một hình nền hay những cạnh trơn nhẵn. Thay vì phải viết những đoạn mã riêng hay tạo lại và thay đổi đặc tả của các phép tính quan trọng mỗi khi cần đến những tính năng như vậy, các nhà phát triển giờ đây chỉ cần gọi thủ tục có sẵn trong OpenGL.

    Sức mạnh đa hệ

    OpenGL không dành riêng cho hệ điều hành hay hệ thống nào. Vì thế, thư viện có thể được dùng để phát triển ứng dụng cho máy tính Windows, máy Macintosh chạy hệ điều hành Mac OS X, trạm làm việc Unix và ngay cả siêu máy tính như máy của SGI dùng để tạo nên bầu trời tại nhà mô hình vũ trụ Hayden Planetarium ở New York.

    SGI phát hành OpenGL vào năm 1992, sau đó chuyển nó cho ủy ban xét duyệt OpenGL (Architecture Review Board - ARB).

    Nhà sản xuất phần cứng có thể viết thêm phần mở rộng để tăng tốc, ví dụ để xử lý ánh sáng toàn cục: khi nguồn sáng chuyển động, các hiệu ứng như phản chiếu, chiếu sáng và che bóng sẽ tự động thay đổi trong toàn bộ khung cảnh. Vào kỳ họp tiếp theo của ARB, họ sẽ đánh giá tính năng mở rộng và khả năng chấp nhận. Tất cả tính năng mở rộng tốt nhất của ARB sẽ được tập hợp để tạo thành phiên bản mới.

    Phiên bản 1.2 hiện tại, phát hành năm 1998 được bổ sung tính năng tạo nền để hỗ trợ khả năng dựng hình volume được tăng tốc phần cứng. Dựng hình volume cho phép người dùng mô tả và thao tác không chỉ với bề mặt của vật thể ba chiều mà còn cả bên trong của vật thể. Ví dụ, khi bạn bổ một quả dưa hấu được dựng hình volume, bạn sẽ thấy lớp vỏ dưa màu xanh bên ngoài cùng lớp thịt mọng nước màu đỏ bên trong với những hạt dưa đen bóng.

    Cấu trúc bên trong sẽ "hành xử" theo một phương thức nhất quán với các đặc điểm đã được mô tả chi tiết. Các kỹ sư có thể dựng nên cảnh đụng xe trên máy tính để kiểm tra độ bền của cấu trúc vỏ xe nhằm bảo vệ hành khách, cũng như kiểm tra nhiều khía cạnh khác trước cả khi chiếc xe mẫu đầu tiên được làm xong.

    OpenGL có cả phần cứng và phần mềm; OpenGL cũng có thể được hiện thực hoàn toàn bằng phần mềm nhưng sẽ chạy cực kỳ chậm.

    Phần cứng có tốc độ nhanh hơn. Bằng cách dùng chip để tăng tốc các chức năng chuyên dụng của OpenGL, các nhà sản xuất có thể tuỳ biến phần cứng cho các ứng dụng riêng biệt.

    Để được tuyên bố là phù hợp với OpenGL, các nhà sản xuất phần cứng phải chạy một số thử nghiệm và đệ trình kết quả cho ARB xin chứng nhận. Tuy nhiên, không phải mọi phần cứng phù hợp chuẩn OpenGL đều có sức mạnh ngang nhau.

    Bo mạch tăng tốc đồ hoạ cấp thấp thích hợp cho các trò chơi có giá khoảng 700 USD, có thể xử lý hiện tượng "răng cưa", nhưng sẽ bị "thiệt hại" về tốc độ 75%. Phần mềm CAD cao cấp để thiết kế các mô hình rắn - cắt lát và cắt khối hình ảnh 3 chiều - yêu cầu những bo mạch cao cấp giá khoảng 3.000 USD.

    Ứng dụng mới

    Khi ứng dụng được mở rộng lên đến mức máy tính lớn, phần cứng trở nên chuyên dụng và phức tạp hơn; nền tảng toán học cũng phức tạp hơn nhiều. Chẳng hạn các nhà thiết kế mô hình có thể gọi thủ tục dựng mặt cong b-splines trong OpenGL để tạo các cấu kiện thép dạng cong của xe hơi; chip chuyên dụng cho công việc này sẽ cho phép xử lý rất nhanh nhưng giá của nó lên đến 6 chữ số. Bằng cách dựng hình ảnh có kích thước thật của một chiếc xe hơi, thao tác như trên xe thật, các nhà thiết kế có thể tìm hiểu cặn kẽ và thay đổi tức thời thiết kế để đạt được kết quả tốt nhất theo yêu cầu của người dùng.

    Khi phần cứng và phần mềm 3D được nâng cao về tính năng và có giá rẻ hơn, trực quan hoá và giả lập 3 chiều sẽ trở nên phổ biến với nhiều người dùng.

    DIRECT X ĐUỔI THEO OPENGL

    OpenGL có thể là thư viện đồ họa lâu đời nhất, được sử dụng rộng rãi nhất và cũng phức tạp nhất, nhưng DirectX của Microsoft đang đuổi theo sát gót. Điều đó không có nghĩa là họ muốn đối đầu với SGI, mà họ đã nhận thấy sự cần thiết phải làm như vậy.

    ARB của OpenGL nhóm họp định kỳ hàng quý, nên họ chậm trễ trong việc bổ sung thêm các tính năng cho OpenGL vì phải được sự thống nhất của các thành viên.

    Ngược lại, Microsoft có thể thực hiện thay đổi nhanh hơn nhiều so với SGI.

    Đối với các tính năng đồ họa, giả lập, mô hình hoá và trực quan hoá trong môi trường cao cấp, đa hệ, vị trí đầu đàn của OpenGL là điều không thể phủ nhận. DirectX chỉ dành riêng cho Windows, được dùng chủ yếu trong các ứng dụng văn phòng và ngày càng trở nên phong phú đối với các nhà phát triển trò chơi. Tuy nhiên, do DirectX chuyển sang môi trường trò chơi và được tăng thêm sức mạnh nhờ NVidia nên OpenGL khó có thể giữ được vị trí độc tôn.

    Diễn đàn trực tuyến cũng thảo luận nhiều về vấn đề này. Người dùng công nhận nét phong phú trong những cải tiến và tính năng của OpenGL, nhưng cũng phàn nàn về sự chậm chạp của ARB trong việc phát hành các tính năng mới. Họ còn tỏ thái độ ghen tị với DirectX về khả năng lập trình đến từng điểm ảnh và đỉnh, cho phép điều khiển các hiệu ứng mạnh hơn.

    Một nhà phân tích nhận định rằng nếu SGI không chú trọng đầu tự cho chiến lược phù hợp OpenGL có thể sẽ không còn phổ biến trong vòng ba năm nữa và DirectX sẽ xâm nhập vào lĩnh vực siêu máy tính.

    Computerworld

    ID: A0106_57