2012-07-06 43 views
6

OpenGL ES 2.0 có vấn đề về độ chính xác nghiêm trọng với mẫu texture - Tôi đã nhìn thấy chủ đề với một similar problem, nhưng tôi chưa thấy một giải pháp thực tế để này "méo OpenGL ES 2.0 texture ".OpenGL ES 2.0 kết cấu biến dạng trên lớn hình học GL_REPEAT

Điều này không liên quan đến định dạng hình ảnh của kết cấu hoặc bộ đệm màu OpenGL, có vẻ như đó là lỗi chính xác. Tôi không biết những gì cụ thể gây ra độ chính xác thất bại - nó không có vẻ như nó chỉ là kích thước của hình học gây ra biến dạng này, bởi vì chỉ đơn giản là tỷ lệ vị trí đỉnh được truyền cho đổ bóng đỉnh không giải quyết được vấn đề.


Dưới đây là một số ví dụ về sự biến dạng kết cấu:

Sự cố kết cấu được giới hạn ở dạng hình học quy mô nhỏ trên OpenGL ES 2.0, nếu không lấy mẫu kết cấu sẽ xuất hiện bình thường, nhưng hiệu ứng hạt dần dần làm xấu đi dữ liệu đỉnh là từ nguồn gốc XYZ (0,0,0)

không xuất hiện trên OpenGL trên máy tính để bàn (hoạt động tốt trên Windows XP, Windows 7 và Mac OS X)

Tôi chỉ thấy sự cố xảy ra trên Android, iPhone hoặc WebGL (tương tự như OpenGL ES 2.0)


Tất cả các kết cấu là sức mạnh của 2 nhưng vấn đề vẫn còn xảy ra

  • Scaling dữ liệu đỉnh - Các giá trị của XYZ vị trí của đỉnh là trong khoảng: -65536 đến +65536 dấu phẩy động

    • Tôi nhận ra điều này là lớn, vì vậy tôi đã thử chia đỉnh vị trí cũ 1024 để thu nhỏ hình học và hy vọng có được chính xác hơn điểm chính xác nổi, nhưng điều này không khắc phục hoặc giảm bớt các vấn đề biến dạng kết cấu
  • Scaling các modelview hoặc mở rộng quy mô các ma trận chiếu không giúp

  • Thay đổi kết cấu lọc tùy chọn không giúp

    • Vô hiệu hóa mipmapping, hoặc sử dụng GL_NEAREST/GL_LINEAR không có gì
    • Kích hoạt/vô hiệu hóa bất đẳng hướng không có gì
    • Hiệu quả dải vẫn xảy ra ngay cả khi sử dụng GL_CLAMP
  • Chia coords kết cấu truyền cho vertex và sau đó nhân chúng trở lại các giá trị chính xác trong đoạn đổ bóng, cũng không hoạt động

  • highp sampler2D chính xác, highp float, highp int - trong phân đoạn hoặc bóng đổ không thay đổi bất kỳ thứ gì (lowp/mediump không wo rk một trong hai)

Tôi đang nghĩ đến vấn đề này phải được giải quyết tại một thời điểm - Thấy OpenGL ES 2.0 dựa trên trò chơi đã có thể làm cho quy mô lớn, có nhiều chi tiết hình học

Trả lời

1

này là vấn đề atlas kết cấu thông thường. Không có thiết lập để giới hạn nội suy tuyến tính ở giữa kết cấu. Đó là cách phần cứng hoạt động.

Bạn có thể giải quyết vấn đề bằng cách sử dụng tra cứu kết cấu bộ lọc gần nhất trong chương trình phân đoạn tính toán tra cứu kết cấu modulo kích thước và vị trí kết cấu của bạn và lọc tuyến tính theo cách thủ công.

+0

Tôi đã cố gắng sắp xếp một lỗi mà tôi cho là tương tự như lỗi này, và tình cờ gặp phải câu hỏi này ... liệu kỹ thuật của bạn có hoạt động để phân loại vấn đề này không? http://stackoverflow.com/questions/13915531/repeating-opengl-es-texture-bound-to-hills-in-cocos2d-2-0 Bất kỳ trợ giúp nào sẽ được đánh giá ồ ạt! – simonthumper

Các vấn đề liên quan