Có cách nào để làm mờ các đối tượng trong trò chơi 2d với OpenGL mà không cần sử dụng trình đổ bóng không?


8

Có một cách hay trong OpenGL để làm mờ các đối tượng mà không cần sử dụng trình đổ bóng?

Hiện tại, tôi đang hoàn thành việc làm mờ bằng cách hiển thị đối tượng hơi lên, xuống, trái, phải và bốn đường chéo từ vị trí ban đầu của nó. Có vẻ như nên có một cách tốt hơn để làm điều này. Tôi đang làm việc trong một cảnh 2d.


Tại sao không sử dụng shader?
Jonathan Fischoff

1
@Jonathan Một số lý do, nhưng lý do lớn nhất có thể là sử dụng OpenGL ES 1.1 (Chỉ FF).
Tiến sĩ Snoopy

ah, gotcha ya. :(
Jonathan Fischoff

Bạn có muốn đạt được hình ảnh động mờ của các đối tượng này?
Alex Jasmin

Câu trả lời:


6

Những gì bạn đã có là tốt và cách chuẩn để làm mờ toàn màn hình.

Nếu bạn không muốn làm mờ toàn màn hình, nhưng muốn làm mờ các sprite 2d trên cơ sở mỗi sprite, bạn có thể sử dụng kẹp / độ lệch mipmap LOD để buộc phần cứng của bạn lấy mẫu mức mip thấp hơn. Được sử dụng cùng với lọc phóng đại song tuyến, kết quả tự nhiên sẽ bị mờ.

Không, bạn có thể sử dụng một kết cấu riêng cho hình ảnh bị mờ và chỉ cần chuyển đổi giữa nó và kết cấu không bị mờ. Nếu bạn muốn chuyển tiếp trơn tru, bạn có thể vẽ đồng thời 2 họa tiết với mỗi họa tiết và tạo hiệu ứng giá trị alpha cho mỗi họa tiết. I E. khi thời gian tăng, alpha cho sprite1 đi từ 0..1 và alpha cho sprite2 đi từ 1..0.


6

Không sử dụng Shader hiển thị hình ảnh bù đắp như bạn làm gần với hiệu ứng mờ như bạn có thể nhận được. Bạn cũng có thể chỉ cần vẽ qua bộ đệm khung trước với độ trong suốt nếu bạn muốn đạt được hiệu ứng làm mờ toàn màn hình. Tuy nhiên, mỗi lần vượt qua gấp đôi số lượng cần thiết để duy trì tốc độ khung hình tốt.

Bước tiếp theo sẽ liên quan đến ít nhất một Rendertexture và logic riêng của bạn để xử lý hình ảnh (trình đổ bóng phần mềm) hoặc sử dụng trình đổ bóng phần cứng thực sự (iPhone 3GS trở lên).


1

Điều đó có thể không dẫn đến cùng một loại hiệu ứng làm mờ nhưng những gì về việc ghép hình ảnh xuống kích thước pixmap nhỏ và vẽ nó trên màn hình với phép nội suy tuyến tính.


1

Các đối tượng cần phải chuyển từ rõ ràng sang mờ?

Cấp độ 1:

  • Giải pháp đơn giản nhất là làm mờ trước nghệ thuật nguồn và chỉ cần vẽ trực tiếp.

Cấp độ 2:

  • Tạo một số bước mờ riêng biệt và tạo ra các bước trước đó, sau đó thực hiện hoán đổi hình ảnh khi cần thiết. Bạn có thể sẽ không cần nhiều người để có được sự chuyển đổi suôn sẻ.

Cấp 3:

  • Tạo một loạt các bước mờ được tạo trước riêng biệt và pha trộn alpha giữa hai bước gần nhất để làm mịn quá trình chuyển đổi.

0

Không có shader, đó là tất cả mọi thứ bạn có thể làm. Bộ đệm tích lũy có thể cung cấp cho bạn nhiều sức mạnh hơn để thực hiện nhiều công việc hơn, nếu nó có sẵn trong nền tảng của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.