Trang 1 / 3 123 LastLast
Hiển thị kết quả từ 1 đến 10 / 23
  1. #1
    Tham gia
    17-07-2002
    Location
    Hà Nội
    Bài viết
    702
    Like
    0
    Thanked 9 Times in 8 Posts

    Vui lắm ! Discuss anything related to OpenGL technique, come on...

    Hẹ hẹ, hôm nay tôi viết thêm một modul fake shadow cho chương trình của mình, đơn giản chỉ là áp một cái texture bóng tròn lên terrain thui :> kô có gì ghê gớm cả. Ban đầu là tui đổ vector crossing lên để lấy mesh cần vẽ, sau đó là cứ thế mà vẽ thui >> hix, chít cha, seo thằng này bị xé hình kì cục zị T_T, rõ ràng mình để depth test là LEQUAL rùi mờ ???? Hic, tui đoán là do depth buffer kô đủ chỗ chứa nên là thèng này kô vẽ chính xác được, mà bỏ depth mask thì cũng kô xong. Cáu wé.. lúc đầu định lục xem OpenGL có hỗ trợ cái hint nào để khắc phục chất lượng ảnh trong những trường hợp này kô (ủa wên, cái này tôi test trên một card GF4 MX440 thì mới bị, các card GF4 dòng Ti kô có card nào bị thế này hết, hè hè...) hoặc định tăng kích thước depth buffer lên (stupid ideal +_+) nhưng mờ kô có thời gian+chả có quyển sách reference nào, hic >> ra đi thanh thản.
    Nhăn mẹt suy nghĩ 5 phút, làm ly cafe cho tỉnh táo, cuối cùng tui quyết định áp dùng một cách con nhà lừa, hẹ hẹ. Tui đẩy độ cao của mesh đó lên một mức nhỏ vừa đủ để lỗi kô xảy ra đồng thời hiệu quả hình ảnh kô bị biến dạng quá mức....hic hic.... may mà gõ phát ăn ngay.... xong ... chỉ có điều cách giải quyết này kô trọn vẹn lắm. Do trong game tôi viết góc quay hầu như luôn cao hơn những mesh này nên cũng khó nhận ra, nhưng trong những trường hợp khác ?
    Trường hợp này đa số các game chạy OpenGL viết khoảng 1 năm về trước đều bị. Giống như haftlife khi nhìn ở xa thì thường bị mất correct chẳng hạn. Nhưng hiện tại HL2 và DoomIII đều đã khử được những lỗi này (hic, tại zề nó kô chơi với con card GF MX chứ nếu chạy thì chắc vẫn chết). Vì thế tôi muốn thảo luận thêm một chút, các huynh đệ chắc là có người làm cái này rùi, vì thế có cách nào tốt hơn thì show ra (hẹ hẹ, đỡ phải tìm :>).
    Tôi nghĩ là còn một cách nữa (làm rùi) là dùng TEXTURE_LAYER, nhưng hic, cái chính là mình viết mà kô chạy được trên những card thông thường thì... tiêu. Chứ viết mà cứ yêu cầu vống lên thì chuối quá.
    Ảnh lởm:

    Ảnh sau khi "phẫu thuật":

    To be continue....
    Quote Quote

  2. #2
    Tham gia
    17-09-2002
    Location
    SMA
    Bài viết
    749
    Like
    0
    Thanked 3 Times in 3 Posts
    Ko biết cái này có phải là cái hiện tượng z-fighting ko nhể? Hồi trước lúc mình làm cái FS cũng bị cái này. Hồi đó test cũng cao lắm là GF4MX nên ko biết là mấy thằng Ti thì ko bị, hehe. Bạn làm nhiều bóng như thế thì thể nào cũng bị cái này thôi.
    http://www.sgi.com/software/opengl/a...00000000000000
    Theo bài này thì có thể dùng stencil buffer để sửa đuợc lỗi này, nhưng mà cách này ko hay lắm vì chỉ chạy tốt trên 32bit màu thôi. Mình nghĩ còn cách khác là sort thứ tự để vẽ shadow, hay tắt luôn depth test đi để vẽ (đương nhiên phải vẽ trước khi vẽ mấy thằng lính chạy lăng nhăng rồi).
    Cách của bạn cũng hay đó nhưng đúng là phải đặt góc nhìn của camera cao cao chứ ko thì chuối thật. Hồi trước mình cũng thử cách này mà góc nhìn ko hạn chế nên nhìn thấy ngáo kinh!!! hehe

  3. #3
    Tham gia
    24-06-2003
    Bài viết
    65
    Like
    0
    Thanked 0 Times in 0 Posts
    Hi Craze,

    Bạn thử cách này nhé :

    Disable depth test
    Vẽ cái bóng của bạn
    Enable depth test

    Còn dùng stencil buffer thì chắc chắn không sửa được vì stencil chỉ là kỹ thuật đánh dấu mà thôi
    Thân
    gtechvn
    Được sửa bởi gtechvn lúc 11:16 ngày 20-10-2003

  4. #4
    Tham gia
    24-06-2003
    Bài viết
    65
    Like
    0
    Thanked 0 Times in 0 Posts
    Quên nữa, Craze cho hỏi một câu, làm thế nào để post mấy tấm hình lên forum này như cậu vậy
    (he he một câu hỏi ngớ ngẩn)
    Thân
    gtechvn

  5. #5
    Tham gia
    17-07-2002
    Location
    Hà Nội
    Bài viết
    702
    Like
    0
    Thanked 9 Times in 8 Posts
    Hi hi, tôi link ảnh từ site khác sang đấy.
    Dùng depth stencil chắc chắn là được (tui dùng rùi mừ+tutor đầy rấy) chỉ có điều là chậm lắm, kô realtime được cho vô số đối tượng như ct của tôi được mô. Giải pháp tắt depth buffer rùi vẽ chắc chắn là kô dùng được (deep thinking about that thing ? right ?)
    He he, Mach2 ui, tui tìm ra cách tăng tốc rùi, kô cần bật stencil checking mà chỉ cần bật stencil correct là ổn. hí hí, nhưng mà tốc độ vẫn giảm thảm hại. Hè hè, chắc là vẫn theo lối cũ thui.

  6. #6
    Tham gia
    24-06-2003
    Bài viết
    65
    Like
    0
    Thanked 0 Times in 0 Posts
    Nếu card của bạn có hỗ trợ stencil buffer thì chắc chắn tốc độ không thể thảm hại được. Mình đã từng làm một chương trình về bóng realtime (planar shadow, shadow volume, và projective mapping shadow) trong một thế giới tương đối lớn trong đó mình dùng stencil để giới hạn vùng bóng , tốc độ OK (Card Geforce II - 64 MB).
    Bạn có thể post đoạn code đó lên ko?

  7. #7
    Tham gia
    17-07-2002
    Location
    Hà Nội
    Bài viết
    702
    Like
    0
    Thanked 9 Times in 8 Posts
    Hi, hôm nay mới đọc bài này (?), code mình chưa up được vì máy tính đang có vấn đề (hic), nhưng nói chung là chậm lém...mà card của mình cũng thuộc loại có hỗ trợ stencil buffer mà (GF4MX440). Chỉ có điều là chậm thui, chưa thử thế giới lớn, chỉ cần áp nó vào một face hoặc room là đủ chít rùi.

  8. #8
    Tham gia
    07-03-2004
    Bài viết
    24
    Like
    0
    Thanked 0 Times in 0 Posts
    Bác Crazy dùng chương trình mà có ngôn ngữ OpenGL để lập trình game vậy ?

  9. #9
    Tham gia
    06-03-2004
    Location
    Địa ngục
    Bài viết
    534
    Like
    14
    Thanked 3 Times in 3 Posts
    zelda hỏi gì thế, chả hiểu gì cả
    nếu hỏi ngôn ngữ nào thì nó là C++

  10. #10
    Tham gia
    05-08-2004
    Bài viết
    25
    Like
    0
    Thanked 0 Times in 0 Posts
    Quote Được gửi bởi gtechvn
    Nếu card của bạn có hỗ trợ stencil buffer thì chắc chắn tốc độ không thể thảm hại được. Mình đã từng làm một chương trình về bóng realtime (planar shadow, shadow volume, và projective mapping shadow) trong một thế giới tương đối lớn trong đó mình dùng stencil để giới hạn vùng bóng , tốc độ OK (Card Geforce II - 64 MB).
    Bạn có thể post đoạn code đó lên ko?
    Mình bít hình như bi giờ người ta chơi thim một cái là Raytrace shadow ??? (hông chắc nhe)

    Volume shadow thuộc hàng top ten rùi. wa.. có code hông share đêeeee . Giấu nghề làm chi :-D

Trang 1 / 3 123 LastLast

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
  •