Trang 3 / 3 FirstFirst 123
Hiển thị kết quả từ 21 đến 24 / 24
  1. #21
    Tham gia
    16-07-2004
    Bài viết
    662
    Like
    0
    Thanked 3 Times in 3 Posts
    Quote Được gửi bởi happyface
    @ câu này có mâu thuẫn nhau không ?
    Bạn nói openGL do các nhà sản xuất card video phát triển. Cái này tui thấy không chính xác. Theo tui biết openGL là thư viện lập trình 3D cố định, nghĩa là nội dung thư viện này không đổi, nó hoạt động theo kiểu tận dụng năng lực của CPU để tính toán. Bạn thấy EA game kô? mọi Game của nó đều sử dụng DirectX. Chính vì thế mà nó mới nhanh và mạnh được
    Á pác nói cái gì thế ,OPENGL là thư viện lập trình phát triển và compatible trên tất cả các hệ điều hành.
    OpenGL của mổi card màn hình khác nhau không có giống nhau đâu bạn ,nó chỉ giống nhau về Pipeline Render và các tên của mỗi hàm thôi .Mỗi một nhà sản xuất card màn hình sau khi sản xuất xong Card họ sẽ viết 1 Driver cho cArd đó và kèm theo thư viện OpenGL,thư viện OPENGL này tuân thủ các quy định chung về cách tổ chức và các Variable,còn mã viết để lập trình nên cái OPENGL thì khác nhau theo mỗi đời của Video Card đó bác .
    Còn 1 điều nữa bác sai lầm là "OpenGL tận dụng khả năng tinh toán của CPU" .OPENGL đó là do implement của Microsoft đó ,phục vụ cho nhưng ngưởi nào muốn lập trình OpenGL mà Card đồ họa không có Hardware Accelerate và OpenGL support do các nhà thiết kế Card màn hình viết
    tui lấy thí dụ như S3 Trio 3D 2x có Accelerate nhưng mà OpenGL thì không có được implement trong Video Driver, do đó Microsoft implement 1 phiên bản OpenGL Software Render( Tận dụng năng lực CPU) dành cho nhưng card kiểu như thế này , Còn như Card khác của Nvidia từ đời TNT2 -> là tui thấy nhà sản xuất card viết 1 cái thư viện OpenGl k2m trong Driver rồi ,và OpenGL trong driver do các nhà sản xuất Card màn hình viết thì chỉ có xài khả năng của GPU thôi cùng lắm 1 số hàm trong OpenGL xài SSE2 intruction của CPU (SSE2 là SIMD xuất hiện từ đời PIII)

    DirectX là do microsoft phát triển cũng tận dụng chức năng của GPU ,thư viện này không phải do các nhà sản xuất Card viết

    Theo tui thi DirectX mọi người thấy chậm hơn OPENGL bời vì có lẽ là do Microsoft không rành cấu trúc Card đồ họa bằng các nhà sản xuất do đó trong DirectX code ko có tối ưu ,tui nghĩ chính vì thế mà nó cư phải cẫp nhật phiên bản liên tục
    Các bạn thấy đó đâu có nhà sản xuất Card màn hình nào viết Driver mà có kèm theo Thư viện DirectX đâu(Cái DirectX có là do mình cài Window nó cài vô đó) ,chỉ có OPENGL thôi ,tại vì OPENGL là chuẩn chung chay trên tất cả platform ,được các nhà sản xuất trực tiếp viết do đó chạy nhanh hơn là vì thế (OPENGL 1.5 là phiên bản mới nhất bây giờ)
    Được sửa bởi whitepenguin lúc 15:33 ngày 21-02-2006

  2. #22
    Tham gia
    13-08-2004
    Location
    gốc Bình Định
    Bài viết
    353
    Like
    0
    Thanked 0 Times in 0 Posts
    Vậy tui hỏi bác, nếu OpenGL mạnh thế thì tại sao Microsoft lại cứ phải theo đuổi DirectX ? Nếu xét về tính tiện dụng trong lập trình thì tui thấy OpenGL tiện dụng hơn nhiều

  3. #23
    Tham gia
    16-07-2004
    Bài viết
    662
    Like
    0
    Thanked 3 Times in 3 Posts
    Quote Được gửi bởi happyface
    Vậy tui hỏi bác, nếu OpenGL mạnh thế thì tại sao Microsoft lại cứ phải theo đuổi DirectX ? Nếu xét về tính tiện dụng trong lập trình thì tui thấy OpenGL tiện dụng hơn nhiều
    OpenGL dĩ nhiên là tiện dụng rồi hì nói lộn phãi ko

    Bác có đọc cuốn OPENGL superbible Third Edition chưa ^__^
    John Carmack tác giả của hầu hết các games 3D hiện đại làm trong ID Software ông ta đã viết lại trò Quake bằng OpenGL và giải thích rất rõ ràng ,và bằng chứng cho thấy là khoảng 10 dòng hoặc hơn Coding bằng OpenGL sẽ yêu cầu DirectX coding 2 đến 3 trang Coding
    Trong thời điểm này Microsoft khuyến khích các nhà phát triển Card viết và thiết kế card và Driver hõ trợ Direct 3D và OpenGL chĩ được sử dụng như 1 toolkit nhỏ dành cho máy trạm sử dụng MCD . 1997 thì microsoft không cho phép các nhà sản xuất card release cái MCD(OpenGl sử dụng MCD) cho windows 98 nếu muốn chỉ được phép cho winNT ,thế là các nhà sản xuất card đâu có implement cái Driver cho OPENGL được --> thế là nhờ đó mà DirectX chiếm ưu thế trong năm đó
    Rất may mắn là Sillicon Graphic tự implement cái OPENGL Driver riêng cũa họ ICD --> Siêu nhanh ,và thế là Microsoft lại Discourage các nhà sản xuất Card hỗ trợ ICD vì họ cho rằng cái MCD cho win NT còn nhanh hơn và dễ sử dụng --> thấy nó đểu không hì
    Nhưng sự thật là các nhà phát triển Game chú trong rất nhiều vào OPENGL thế là cuối củng Microsoft phải chấp nhận cho OPENGL phát triển trên Win 98
    OpengGL là Industry Standard API ,rất nhiểu ứng dụng phát triển bằng OpenGL và các nhà sản xuất card toàn thiết kế hardware cho OpenGL .
    Microsoft chú trong DirectX vì đó là Implement của họ ,họ không muốn nó bị lỗi thời và cỗ lỗ hơn OpenGL sau khi OpenGL lên dẫn đầu và họ thường xuyên phải cập nhật update DirectX (đến bây giờ là DirectX 9) vì card đồ họa do các nhà san xuất card viết Driver hỗ trỡ OPENGL là chủ yếu ,do đó OpenGL cho đến bây giờ chỉ có version 1.5 thôi

  4. #24
    Tham gia
    05-09-2003
    Bài viết
    21
    Like
    0
    Thanked 0 Times in 0 Posts
    Quote Được gửi bởi happyface
    Theo đánh giá của tôi thì thư viện OpenGL cung cấp các hàm API có tốc độ cao hơn và có độ chính xác cao hơn DirectX.
    DirectX do MS phát triển được cập nhật liên tục cả về tính năng (new API) và tối ưu, còn OpenGL thì chậm hơn.
    @ câu này có mâu thuẫn nhau không ?
    Không mâu thuẫn, mặc dù đội ngũ phát triển DirectX liên tục tối ưu nhưng vẫn chưa đạt được tốc độ bằng OpenGL (câu OpenGL chậm ở trên là chậm update (interface), không phải speed). Tuy nhiên với tiến độ làm việc như vậy thì có thể sẽ vượt qua.
    Quote Được gửi bởi happyface
    Bạn nói openGL do các nhà sản xuất card video phát triển. Cái này tui thấy không chính xác. Theo tui biết openGL là thư viện lập trình 3D cố định, nghĩa là nội dung thư viện này không đổi, nó hoạt động theo kiểu tận dụng năng lực của CPU để tính toán. Bạn thấy EA game kô? mọi Game của nó đều sử dụng DirectX. Chính vì thế mà nó mới nhanh và mạnh được
    Chỗ này chắc bạn hiểu sai ý tôi, ở trên tôi nói đến thư viện OpenGL là file opengl.dll được sử dụng trên PC, chứ không nói tới định nghĩa chuẩn OpenGL. Interface là 1 chuyện, implement thực tế cho ra 1 thư viện (.dll) tối ưu về độ chính xác và tốc độ lại là chuyện khác.
    Quote Được gửi bởi happyface
    Vậy tui hỏi bác, nếu OpenGL mạnh thế thì tại sao Microsoft lại cứ phải theo đuổi DirectX ? Nếu xét về tính tiện dụng trong lập trình thì tui thấy OpenGL tiện dụng hơn nhiều
    Càng nhiều ứng dụng sử dụng DirectX thì càng ít ứng dụng chạy trên các platform khác vì nếu các nhà phát triển ứng dụng trên nền OpenGL thì việc chuyển ứng dụng đó sang các hệ điều hành non Windows sẽ dễ dàng hơn, đây là điều MS không muốn tí nào. MS không muốn có nhiều programer thành thạo OpenGL vì họ có thể phát triển ứng dụng trên các platform khác không phải Windows.

    Theo tôi tốc độ và chất lượng hình ảnh 1 game phụ thuộc các yếu tố :
    1/ Thiết kế của nhà phát triển game và kĩ năng lập trình của họ để có kết quả tối ưu.
    2/ Các hàm API trung gian (trong trường hợp các nhà phát triển game sử dụng, như DirectX và OpenGL), chỗ này gồm 2 phần :
    - thiết kế tập API cơ sở có hiệu quả không (interface)
    - triển khai lập trình thư viện cung cấp các API đó (implementation).
    Trong trường hợp DirectX thì MS thực hiện cả 2 công đoạn. Trong OpenGL thì interface là do 1 hội đồng đặt ra, việc cập nhật các tính năng mới (bổ sung đặc tả API sử dụng các tính năng của chip VGA mới) chậm hơn bên MS, còn việc lập trình các thư viện (implement) do các nhà sản xuất chipset VGA phát triển, thường đi kèm driver luôn.

    Khi so sánh thì tối thiểu phải giữ phần 1 là như nhau, chỉ khác phần 2 thôi :
    Ví dụ tôi thấy cùng engine Half-life thì khi chọn chế độ OpenGL có tốc độ khung hình / s cao hơn khi chọn chế độ DirectX, đồng thời hình ảnh cũng đẹp hơn. Mặc dù ví dụ này chưa thể kết luận hoàn toàn rằng OpenGL tốt hơn DirectX nhưng cũng có thể tạm kết luận như vậy.

Trang 3 / 3 FirstFirst 123

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •