Tôi đang sử dụng ParticleSystem với PointSprites (lấy cảm hứng từ Nguồn Cocos2D). Nhưng tôi tự hỏi cách xây dựng lại chức năng cho OpenGL ES 2.0GLSL PointSprite cho hệ thống hạt
glEnable(GL_POINT_SPRITE_OES);
glEnableClientState(GL_POINT_SIZE_ARRAY_OES);
glPointSizePointerOES(GL_FLOAT,sizeof(PointSprite),(GLvoid*) (sizeof(GL_FLOAT)*2));
glDisableClientState(GL_POINT_SIZE_ARRAY_OES);
glDisable(GL_POINT_SPRITE_OES);
những điều này tạo ra BAD_ACCESS khi sử dụng ngữ cảnh OpenGL ES 2.0. Tôi có nên chỉ cần đi với 2 TRIANGLES cho mỗi PointSprite? Nhưng thats có lẽ không phải là rất hiệu quả (trên không cho các đỉnh phụ).
EDIT: Vì vậy, vấn đề mới của tôi với các giải pháp gợi ý từ: https://gamedev.stackexchange.com/questions/11095/opengl-es-2-0-point-sprites-size/15528#15528
là một khả năng để vượt qua nhiều kích cỡ khác nhau trong một cuộc gọi hàng loạt. Tôi nghĩ đến việc sử dụng một thuộc tính thay vì một bộ đồng phục, nhưng sau đó tôi sẽ cần phải vượt qua luôn luôn một PointSize để shaders của tôi - ngay cả khi tôi không vẽ GL_POINTS. Vì vậy, có thể một shader thứ hai (một shader chỉ cho GL_POINTS) ?! Tôi không nhận thức được chi phí cho việc chuyển đổi bóng râm mọi khung hình trong quá trình vẽ (bởi vì nếu hệ thống hạt được sử dụng, tôi muốn tự nhiên cũng hiển thị GL_TRIANGLES thông thường mà không có pointSize) ... Bất kỳ ý tưởng nào về điều này?
này nên là những gì bạn đang tìm kiếm: http://gamedev.stackexchange.com/questions/11095/opengl-es-2-0-point-sprites-size/15528#15528 – rgngl
Cảm ơn bạn! Liên kết đó rất hữu ích. Vì vậy, vấn đề duy nhất của tôi với giải pháp này là khả năng làm điều tương tự như "glPointSizePointerOES" trên GLSL (trên liên kết được đề xuất sử dụng đồng phục cho kích thước điểm - vì vậy nhiều điểm khác nhau với kích thước khác nhau không thể rút được trong cuộc gọi hàng loạt với glDrawArrays). Tôi nghĩ đến việc sử dụng một thuộc tính thay vì một bộ đồng phục, nhưng sau đó tôi sẽ cần phải vượt qua luôn luôn một PointSize để shaders của tôi - ngay cả khi tôi không vẽ GL_POINTS. Vì vậy, có thể một shader thứ hai (một shader chỉ cho GL_POINTS) ?! Bất kỳ ý tưởng về điều này? – Constantin