Tôi muốn biết những tùy chọn (hoặc shader) nào để thiết lập để trò chơi OpenGL của tôi trông giống như trò chơi Playstation 1. Tôi biết có lẽ không thể đạt được 100% vì PSX đã sử dụng truyền hình và truyền hình hiển thị khác màn hình đó. Cảm ơn. :)
Tôi muốn biết những tùy chọn (hoặc shader) nào để thiết lập để trò chơi OpenGL của tôi trông giống như trò chơi Playstation 1. Tôi biết có lẽ không thể đạt được 100% vì PSX đã sử dụng truyền hình và truyền hình hiển thị khác màn hình đó. Cảm ơn. :)
Câu trả lời:
Theo tôi, các bit quan trọng nhất để tạo cảnh OpenGL trông giống như cảnh PSX sẽ là đảm bảo bộ lọc được tắt (PS1 chỉ có hàng xóm gần nhất) và tắt bộ đệm Z (không có) cảnh của bạn với thuật toán họa sĩ.
Ánh sáng chỉ trên mỗi đỉnh, trên thực tế không có bất kỳ phần cứng chiếu sáng nào chỉ tô màu cho đỉnh. Ánh sáng được điều khiển bằng phần mềm để bạn có thể làm bất cứ điều gì trong giới hạn của thời gian CPU, trong đó không có nhiều phụ tùng cho những thứ tiên tiến thông minh như "chiếu sáng". :) Chúng tôi đã cố gắng để có được đặc điểm tại một điểm, nhưng vì nó là trên đỉnh, nó làm cho cảnh trông lấp lánh nên chúng tôi đã bỏ nó. Chúng tôi không bao giờ quản lý để có được đặc tính để làm việc với các mắt lưới như là quy tắc pha trộn và sau đó sử dụng chúng chỉ mất quá nhiều thời gian.
PS1 cũng có một chút kết cấu bơi lội, tôi không chắc bạn sẽ triển khai điều đó như thế nào với OpenGL, nhưng nếu bạn là người có trải nghiệm xác thực, có thể chỉ cố gắng làm cho tia UV bị phá vỡ khi chúng ở gần mép màn hình sẽ đưa ra một xấp xỉ hợp lý.
Tôi cũng khuyên bạn nên xem các biến đổi đỉnh: PS1 không nổi, do đó, kết xuất diễn ra với các đường ống điểm cố định, đây là nguyên nhân của chuyển động lộn xộn khi phát hình động. Chỉ có rất nhiều vị trí mà một đỉnh có thể ở và tại điểm cố định 16 bit, đó thậm chí không phải là nhiều vị trí. Có một vài video youtube PS1 để có ý tưởng về cách nó ảnh hưởng đến trò chơi, http://www.youtube.com/watch?v=RSV4IBa1pMIbạn có thể thấy ở đây có nghĩa là các đường thẳng bị xáo trộn xung quanh khi máy quay gần ngang. Tôi nghĩ rằng một cách tốt để mô phỏng điều này sẽ là biến đổi thế giới của bạn trong phần mềm (giống như PS1 đã làm) và luôn xuất toàn bộ tọa độ màn hình số sang kích thước màn hình mô phỏng (đó là một trong những lý do chính khiến các polys bị xáo trộn xung quanh, chúng không thể được hiển thị thành pixel phụ).
BIÊN TẬP
Kết cấu bơi là do PS1 hoàn toàn không có nội suy 3D. Như user712092 đã đề cập, trình kết xuất affine chỉ có thể nội suy trong không gian màn hình nên chúng tôi đã kết thúc với các đường chéo của mình đều sai. Điều này có thể được thực hiện bằng cách bật noperspective
vòng loại nội suy của bạn hoặc được mô phỏng bằng cách chuyển đổi cảnh bằng tay và loại bỏ giá trị Z cuối cùng trong đỉnh của bạn sau khi bạn chia tọa độ màn hình x và y cho giá trị z đó