Menurut pendapat saya, bit paling penting untuk membuat adegan OpenGL terlihat seperti adegan PSX adalah untuk memastikan pemfilteran dimatikan (PS1 hanya memiliki tetangga terdekat), dan mematikan buffering Z (tidak ada) dan membuat adegan Anda dengan algoritma pelukis.
Pencahayaan hanya per vertex, sebenarnya sebenarnya tidak ada perangkat keras pencahayaan hanya pewarnaan vertex berbayang. Pencahayaan adalah perangkat lunak yang digerakkan sehingga Anda dapat melakukan apa saja dalam batasan waktu CPU, yang tidak ada banyak cadangan untuk hal-hal canggih seperti "pencahayaan". :) Kami berhasil mendapatkan specular pada satu titik, tetapi karena per titik itu membuat adegan terlihat sparkley jadi kami menjatuhkannya. Kami tidak pernah berhasil mendapatkan specular untuk bekerja dengan jeruji berkulit sebagai campuran normal dan kemudian menggunakannya hanya memakan waktu terlalu banyak.
PS1 juga memiliki sedikit tekstur berenang, saya tidak yakin bagaimana Anda akan menerapkannya dengan OpenGL, tetapi jika Anda setelah pengalaman otentik, mungkin hanya mencoba untuk membuat kerusakan UV ketika mereka berada di dekat tepi layar akan memberikan perkiraan yang masuk akal.
Saya juga merekomendasikan Anda melihat transformasi vertex: PS1 tidak memiliki float, jadi rendering dilakukan dengan jalur pipa tetap, ini adalah penyebab gerakan gelisah saat bermain animasi. Hanya ada begitu banyak posisi di mana sebuah simpul bisa berada, dan pada titik 16bit tetap, itu bahkan tidak terlalu banyak posisi. Saksikan beberapa video YouTube PS1 untuk mengetahui bagaimana pengaruhnya terhadap game, http://www.youtube.com/watch?v=RSV4IBa1pMIAnda dapat melihat di sini bahwa itu berarti garis-garis lurus bergetar ketika kamera mendekati horizontal. Saya pikir cara yang baik untuk meniru ini adalah untuk mengubah dunia Anda dalam perangkat lunak (seperti yang dilakukan PS1) dan selalu menampilkan seluruh koordinat layar dengan ukuran layar yang ditiru (yang merupakan salah satu alasan utama mengapa polys itu berkeliaran, mereka tidak dapat dirender ke sub-piksel).
EDIT
Berenang tekstur adalah karena PS1 tidak memiliki interpolasi 3D sama sekali. Seperti yang disebutkan oleh user712092, renderer affine hanya bisa melakukan interpolasi di ruang layar sehingga kami berakhir dengan diagonal yang salah. Ini dapat diimplementasikan dengan menyalakan noperspective
kualifikasi interpolasi Anda, atau ditiru dengan mentransformasikan adegan secara manual, dan membuang nilai Z akhir dalam simpul Anda setelah Anda membagi koordinat layar x dan y dengan nilai z tersebut