ຄະນິດສາດແສງສະຫວ່າງ

ຜົນກະທົບທາງສາຍຕາສ່ວນໃຫຍ່ທີ່ທ່ານເຫັນໃນເກມມື້ນີ້ແມ່ນຂື້ນກັບການ ນຳ ໃຊ້ແສງສະຫວ່າງແລະເງົາມືດ - ເກມທີ່ບໍ່ມີພວກມັນຈະຈືດຈາງແລະບໍ່ມືດມົວ. ໃນບົດທີສີ່ນີ້, ບ່ອນທີ່ພວກເຮົາພິຈາລະນາຢ່າງເລິກເຊິ່ງກ່ຽວກັບການສ້າງເກມ 3D, ພວກເຮົາຈະສຸມໃສ່ສິ່ງທີ່ເກີດຂື້ນກັບໂລກ 3D ພ້ອມທັງການປະມວນຜົນມູມແລະໃຊ້ໂຄງສ້າງ. ມັນປະກອບດ້ວຍຄວາມເຂົ້າໃຈທີ່ແຂງຂອງຄະນິດສາດແລະພື້ນຖານຂອງ optics.

ພວກເຮົາຈະເຂົ້າໄປເບິ່ງທັນທີເພື່ອເບິ່ງວ່າທຸກຢ່າງນີ້ເຮັດວຽກໄດ້ແນວໃດ. ນີ້ແມ່ນຄັ້ງ ທຳ ອິດທີ່ພວກເຮົາກວດເບິ່ງຊຸດ render 3D ຂອງພວກເຮົາ. ເກມ 3D ສະແດງ 101 ນີ້ແມ່ນຄູ່ມືພື້ນຖານກ່ຽວກັບວິທີການສ້າງກອບຂອງຄວາມດີຂອງເກມ. ຈາກບ່ອນນັ້ນພວກເຮົາເຮັດວຽກໃນທຸກດ້ານຂອງການສະແດງໃນບົດຄວາມຕໍ່ໄປນີ້ ...

ຕອນ 0: ເກມ 3D ສະແດງ 101
ເຮັດໃຫ້ຮູບພາບອະທິບາຍ

ຕອນທີ 1: ການສ້າງເກມ 3D: ການສະແດງແຈ
Dive Dive ສູ່ໂລກຂອງ 3D Graphics
ສ່ວນທີ 2: ການສ້າງເກມ 3D: Rasterization ແລະ Ray Tracing
ຈາກ 3D ເຖິງ Flat 2D, POV ແລະແສງໄຟ
ພາກທີ 3: ການສະແດງເກມ 3D: ໂຄງສ້າງ
Bilineer, Trilinear, ການກັ່ນຕອງ Anisotropic, ການສ້າງແຜນທີ່ຫົວ
ບົດທີ 4: ການສະແດງເກມ 3D: ແສງແລະເງົາ
ວິຊາຄະນິດສາດແສງສະຫວ່າງ, SSR, ການສະກົດຈິດຮອບຄອບ, ການສ້າງແຜນທີ່ທີ່ເປັນເງົາ

ເຮັດຊ້ ຳ

ມາຮອດປະຈຸບັນນີ້ໃນໄລຍະທີ່ພວກເຮົາໄດ້ເວົ້າເຖິງລັກສະນະທີ່ ສຳ ຄັນຂອງວິທີການຮູບຮ່າງໃນສະຖານະການ ໜຶ່ງ ທີ່ເຄື່ອນໄຫວແລະຈັດການ, ວິທີການທີ່ພວກມັນຈະປ່ຽນຈາກພື້ນທີ່ 3D ເປັນຕາຂ່າຍໄຟຟ້າ pixels ລວງທີ່ຮາບພຽງ, ແລະວິທີການໃຊ້ໂຄງສ້າງກັບຮູບຮ່າງເຫຼົ່ານັ້ນ. ເປັນເວລາຫລາຍປີ, ນີ້ແມ່ນພາກສ່ວນໃຫຍ່ຂອງຂະບວນການສ້າງ, ແລະພວກເຮົາສາມາດເຫັນສິ່ງນີ້ກັບຄືນສູ່ປີ 1993 ໂດຍການຍິງ Doom ຂອງ Software.

ການ ນຳ ໃຊ້ແສງແລະຮົ່ມໃນຫົວຂໍ້ນີ້ແມ່ນມີຄວາມ ສຳ ຄັນຫຼາຍໂດຍມາດຕະຖານທີ່ທັນສະ ໄໝ: ບໍ່ມີການ ນຳ ເອົາແສງສະຫວ່າງໃດມາພິຈາລະນາໂດຍທົ່ວໄປໃນທຸກດ້ານຫລື ສະພາບແວດລ້ອມ, ຄ່າສີໂດຍໃຊ້ມູມ. ຄວາມຮູ້ສຶກໃດໆຂອງເງົາແມ່ນຍ້ອນການໃຊ້ໂຄງສ້າງທີ່ສະຫລາດແລະການເລືອກສີຂອງອາກາດລ້ອມຮອບຂອງຜູ້ອອກແບບ.




ນີ້ບໍ່ແມ່ນຍ້ອນວ່ານັກຂຽນໂປແກຼມບໍ່ໄດ້ມາເຮັດວຽກ: ຮາດແວຄອມພີວເຕີ້ໃນເວລານັ້ນປະກອບດ້ວຍ CPU ຈຳ ນວນ 66 MHz (0.066 GHz!), ຮາດດິດ 40 MB, ແລະບັດກາຟິກ 512 kB ທີ່ມີຄວາມສາມາດ 3D ຢ່າງ ໜ້ອຍ. ກ້າວໄປຂ້າງ ໜ້າ 23 ​​ປີ, ແລະມັນກໍ່ແມ່ນເລື່ອງທີ່ແຕກຕ່າງກັນຫຼາຍ reboot ປະກາດ.




ມີ ຄວາມຮັ່ງມີຂອງເຕັກໂນໂລຢີ ໃຊ້ໃນການສ້າງກອບແບບນີ້, ພື້ນທີ່ຂອງ ໜ້າ ຈໍມີການສະແດງອອກທີ່ມ່ວນໆເຊັ່ນ: ແວດລ້ອມອ້ອມແອ້ມ, ແຜນທີ່ຄວາມເລິກກ່ອນການປ່ຽນແປງ, ການກັ່ນຕອງມົວ Bokeh, ຜູ້ ກຳ ນົດແຜນທີ່ສຽງແລະອື່ນໆ. ການເຮັດໃຫ້ມີແສງແລະຮົ່ມຂອງທຸກໆດ້ານມີຄວາມຄ່ອງແຄ້ວ: ມັນປ່ຽນແປງໄປເລື້ອຍໆກັບສະພາບແວດລ້ອມແລະການເຄື່ອນໄຫວຂອງນັກເຕະ.




ນັບຕັ້ງແຕ່ທຸກສິ່ງທຸກຢ່າງກ່ຽວກັບການສະແດງ 3D ກ່ຽວຂ້ອງກັບເລກ (ແລະມັນຫຼາຍ!), ພວກເຮົາດີກວ່າທີ່ຈະເຂົ້າໄປໃນສິ່ງທີ່ຢູ່ເບື້ອງຫຼັງເກມທີ່ທັນສະ ໄໝ.




ຄະນິດສາດຂອງການສ່ອງແສງ

ເພື່ອເຮັດສິ່ງເຫຼົ່ານີ້ຢ່າງຖືກຕ້ອງ, ທ່ານ ຈຳ ເປັນຕ້ອງສ້າງແບບຢ່າງທີ່ຖືກຕ້ອງວ່າມັນມີປະຕິກິລິຍາແນວໃດເມື່ອມີການພົວພັນກັບ ໜ້າ ຕ່າງ. ທ່ານອາດຈະແປກໃຈທີ່ຮູ້ວ່າສິ່ງນີ້ມີຕົ້ນ ກຳ ເນີດມາໃນສະຕະວັດທີ 18 ແລະຜູ້ຊາຍຊື່ Johann Heinrich Lambert.

ໃນປີ 1760 ນັກວິທະຍາສາດຂອງປະເທດສະວິດໄດ້ຕີພິມປື້ມດັ່ງຕໍ່ໄປນີ້: Photometria - ໃນມັນວາງກົດລະບຽບພື້ນຖານກ່ຽວກັບພຶດຕິ ກຳ ຂອງແສງສະຫວ່າງ; ສິ່ງທີ່ ໜ້າ ສັງເກດທີ່ສຸດ, ໜ້າ ດິນໄດ້ຖືກກະແຈກກະຈາຍໃນຮູບແບບທີ່ຄວາມເຂັ້ມຂອງແສງ (ທັງໂດຍການສະທ້ອນຫຼືເປັນແຫຼ່ງແສງ) ຈະແຕກຕ່າງກັນກັບ cosine ຂອງມຸມທີ່ວັດແທກລະຫວ່າງປົກກະຕິແລະຜູ້ສັງເກດການຂອງພື້ນຜິວ. ແສງສະຫວ່າງ.




ກົດລະບຽບງ່າຍໆນີ້ສ້າງເປັນພື້ນຖານຂອງສິ່ງທີ່ເອີ້ນວ່າ ຢ່າງແຜ່ຫຼາຍ ເຮັດໃຫ້ມີແສງ. ນີ້ແມ່ນຮູບແບບທາງຄະນິດສາດທີ່ໃຊ້ໃນການຄິດໄລ່ສີຂອງພື້ນຜິວໂດຍອີງໃສ່ຄຸນລັກສະນະທາງກາຍະພາບຂອງມັນ (ເຊັ່ນວ່າມັນສະທ້ອນສີແລະແສງສະຫວ່າງໄດ້ດີເທົ່າໃດ) ແລະທີ່ຕັ້ງຂອງແຫຼ່ງແສງ.

ສຳ ລັບການສະແດງ 3D ນີ້ຕ້ອງມີຄວາມຮູ້ຫຼາຍແລະສິ່ງນີ້ສາມາດເປັນຕົວແທນຂອງແຜນວາດອື່ນ:




ທ່ານສາມາດເຫັນລູກສອນຫຼາຍໃນຮູບ - ເຫຼົ່ານີ້ແມ່ນ vectors ແລະການຄິດໄລ່ສີຂອງແຕ່ລະຫົວຂໍ້:

  • 3 ຈຸດສູງສຸດ ສຳ ລັບແຫຼ່ງແສງແລະສະຖານທີ່ຂອງກ້ອງຖ່າຍຮູບເບິ່ງສະຖານທີ່
  • 2 ສຳ ລັບທິດທາງຂອງແຫຼ່ງແສງສະຫວ່າງແລະກ້ອງຖ່າຍຮູບຈາກ vertex
  • 1 ວີກປົກກະຕິ
  • vector ເຄິ່ງ ໜຶ່ງ (ສະເຫມີລະຫວ່າງແສງສະຫວ່າງແລະກ້ອງວົງຈອນທິດທາງກ້ອງຖ່າຍຮູບ)

ທັງ ໝົດ ເຫຼົ່ານີ້ຖືກຄິດໄລ່ໃນຂັ້ນຕອນການປະມວນຜົນສູງສຸດຂອງ ລຳ ດັບການສະແດງຜົນ, ແລະສົມຜົນທີ່ເຊື່ອມຕໍ່ກັບພວກມັນທັງ ໝົດ (ເອີ້ນວ່າຕົວແບບ Lambertian):

ດັ່ງນັ້ນ, ສີຂອງຈຸດສູງສຸດ, ຜ່ານການເຮັດໃຫ້ມີແສງກະຈາຍ, ສີຂອງພື້ນຜິວ, ສີຂອງແສງແລະ ຜະລິດຕະພັນ dot ປັດໃຈມະລາຍຫາຍໄປແລະຈຸດພິເສດ, ຈຸດສູງສຸດປົກກະຕິແລະແສງທິດທາງ. ນີ້ແມ່ນເຮັດສໍາລັບທຸກໆແຫຼ່ງແສງສະຫວ່າງໃນ scene, ເພາະສະນັ້ນພາກສ່ວນ 'ເພີ່ມເຕີມ' ໃນຕອນເລີ່ມຕົ້ນຂອງສົມຜົນ.

ເຄື່ອງຈັກໃນສົມຜົນນີ້ (ແລະອື່ນໆທັງ ໝົດ ທີ່ພວກເຮົາຈະເຫັນ) ເປັນປົກກະຕິ (ຕາມທີ່ບອກໂດຍ ສຳ ນຽງຂອງແຕ່ລະ vector). ແວ່ນຕາປົກກະຕິຈະຮັກສາທິດທາງເດີມ, ແຕ່ວ່າຄວາມຍາວຂອງມັນຖືກຫຼຸດລົງໃຫ້ເປັນເອກະພາບ (ເຊັ່ນວ່າມັນມີຂະ ໜາດ ເທົ່າກັບ 1 ໜ່ວຍ).

ຄຸນຄ່າ ສຳ ລັບພື້ນຜິວແລະສີອ່ອນແມ່ນຕົວເລກມາດຕະຖານ RGBA (ສີແດງ, ສີຂຽວ, ສີຟ້າ, ຄວາມໂປ່ງໃສອັນຟາ) - ພວກມັນສາມາດເປັນຕົວເລກໄດ້ (ຕົວຢ່າງ: INT8 ສຳ ລັບແຕ່ລະຊ່ອງສີ), ແຕ່ພວກມັນເກືອບແມ່ນຕົວເລກທີ່ລອຍຢູ່ສະ ເໝີ (ຕົວຢ່າງ: FP32). ປັດໄຈການ ກຳ ນົດວິທີການທີ່ລະດັບແສງສະຫວ່າງຈາກແຫຼ່ງຫຼຸດລົງດ້ວຍໄລຍະຫ່າງແລະຖືກ ຄຳ ນວນກັບສົມຜົນອື່ນ:

ຂໍ້ ກຳ ນົດC, TOLແລະ AQ ມີຕົວຄູນຕ່າງໆ (ຄົງທີ່, ເສັ້ນ, ສີ່ຫລ່ຽມ) ເພື່ອອະທິບາຍວ່າລະດັບແສງສະຫວ່າງໄດ້ຮັບຜົນກະທົບຈາກໄລຍະຫ່າງເທົ່າໃດ - ເຊິ່ງທັງ ໝົດ ນີ້ຕ້ອງໄດ້ຖືກ ກຳ ນົດໂດຍນັກຂຽນໂປແກຼມເມື່ອເຄື່ອງຈັກສະແດງສ້າງຂື້ນ. ແຕ່ລະ API ກາຟິກມີວິທີການທີ່ເປັນເອກະລັກຂອງຕົນເອງໃນການເຮັດສິ່ງນີ້, ແຕ່ຕົວຄູນໄດ້ຖືກປ້ອນເຂົ້າໄປເມື່ອປະເພດແຫຼ່ງແສງສະຫວ່າງຖືກເຂົ້າລະຫັດ.

ກ່ອນທີ່ຈະເບິ່ງປັດໃຈສຸດທ້າຍ, ຈຸດພິເສດ, ຄວນສັງເກດວ່າສ່ວນໃຫຍ່ແມ່ນມີ 3 ປະເພດຂອງໄຟໃນການສະແດງແບບ 3D ຄື: ຈຸດ, ທິດທາງແລະຈຸດໄຟ.

ໃນຂະນະທີ່ໄຟສັນຍານຈຸດແຜ່ກະຈາຍໄປທົ່ວທຸກທິດທາງ, ແສງໄຟທິດທາງຈະປ່ອຍແສງໃນທິດທາງດຽວ (ໃນແງ່ທາງຄະນິດສາດ, ຕົວຈິງແລ້ວມັນແມ່ນແສງໄຟຢູ່ຈຸດທີ່ບໍ່ມີຂອບເຂດ). ຈຸດເດັ່ນແມ່ນແຫຼ່ງທີ່ຊີ້ ນຳ ທີ່ຊັບຊ້ອນຍ້ອນວ່າມັນສ່ອງແສງໃນຮູບຊົງຂອງໂກນ. ວິທີການທີ່ແສງສະຫວ່າງປ່ຽນໄປຕາມຮ່າງກາຍຂອງໂກນຖືກ ກຳ ນົດໂດຍຂະ ໜາດ ຂອງສ່ວນໃນແລະນອກຂອງໂກນ.

ແລະແມ່ນແລ້ວ, ມັນມີສົມຜົນອີກອັນ ໜຶ່ງ ສຳ ລັບປັດໃຈທີ່ ສຳ ຄັນຄື:

ຄຸນຄ່າຂອງປັດໃຈທີ່ ສຳ ຄັນແມ່ນທັງ 1 (ເຊັ່ນ: ແສງສະຫວ່າງ ບໍ່ ຈຸດພິເສດ), 0 (ຖ້າວ່າວົງແຫວນຢູ່ນອກທິດທາງຂອງໂກນ), ຫຼືມູນຄ່າທີ່ຄິດໄລ່ລະຫວ່າງ. ເທວະດາ φ (phi) ve θ (theta) ກຳ ນົດຂະ ໜາດ ຂອງສ່ວນໃນ / ທາງນອກຂອງໂກນຈຸດເດັ່ນ.

ສອງ vector, LdCS ແລະ​ຂ້ອຍເຈົ້າ, (ກົງກັນຂ້າມກັບທິດທາງຂອງກ້ອງຖ່າຍຮູບແລະກົງກັນຂ້າມກັບທິດທາງຂອງຈຸດທີ່ໂດດເດັ່ນ, ຕາມ ລຳ ດັບ) ແມ່ນໃຊ້ເພື່ອ ກຳ ນົດວ່າໂກນໄດ້ ສຳ ຜັດຕົວຈິງບໍ.

ໃນປັດຈຸບັນຈື່ວ່ານີ້ແມ່ນທັງຫມົດສໍາລັບການຄິດໄລ່ມູນຄ່າເຮັດໃຫ້ມີແສງການແຜ່ກະຈາຍແລະຕ້ອງໄດ້ເຮັດສໍາລັບມັນ. ນາງ ແຫຼ່ງແສງໃນເວທີ, ຫຼືຢ່າງ ໜ້ອຍ ທຸກໆແສງທີ່ນັກຂຽນໂປແກຼມຕ້ອງການປະກອບ. ຫຼາຍໆສະມະການເຫຼົ່ານີ້ຖືກຈັດການໂດຍ API ກາຟິກ, ແຕ່ສາມາດເຮັດໄດ້ດ້ວຍຕົນເອງໂດຍຜູ້ຂຽນລະຫັດທີ່ຕ້ອງການຄວບຄຸມສາຍຕາທີ່ດີກວ່າ.

ເຖິງຢ່າງໃດກໍ່ຕາມ, ໃນໂລກຕົວຈິງ, ມັນແມ່ນຕົວຈິງກ ບໍ່ມີສິ້ນສຸດ ຈຳ ນວນແຫຼ່ງແສງສະຫວ່າງ. ເພາະວ່າແຕ່ລະພື້ນຜິວສະທ້ອນແສງສະຫວ່າງແລະດັ່ງນັ້ນແຕ່ລະ ໜ້າ ຈະປະກອບສ່ວນເຂົ້າໃນການສ່ອງແສງໂດຍລວມຂອງສາກ. ເຖິງແມ່ນວ່າໃນຕອນກາງຄືນ, ມັນຍັງມີຄວາມເປັນມາເຮັດໃຫ້ມີແສງພື້ນຫລັງຈາກດາວຫ່າງໄກແລະດາວເຄາະຫລືແສງກະແຈກກະຈາຍໄປສູ່ບັນຍາກາດ.

ເພື່ອເຮັດແບບນີ້, ມູນຄ່າແສງສະຫວ່າງອື່ນແມ່ນຖືກຄິດໄລ່: ໜຶ່ງ ເອີ້ນວ່າ ສະພາບແວດລ້ອມ ເຮັດໃຫ້ມີແສງ.

ສົມຜົນນີ້ແມ່ນງ່າຍດາຍກ່ວາເຄື່ອງແຜ່ກະຈາຍເພາະວ່າບໍ່ມີທິດທາງ. ແທນທີ່ຈະ, ມັນແມ່ນຜະລິດຕະພັນສົ່ງຕໍ່ໂດຍກົງຂອງປັດໃຈຕ່າງໆ:

  • CSA - ສີຜິວຮອບດ້ານ
  • CGA - ສີຂອງອາກາດລ້ອມຮອບຂອງພາບພົດ 3D spherical
  • CLA - ສີຂອງອາກາດລ້ອມຮອບຂອງແຫລ່ງແສງສະຫວ່າງໃດໆໃນບ່ອນເກີດເຫດ

ເອົາໃຈໃສ່ຕໍ່ການ ນຳ ໃຊ້ປັດໃຈຄວາມສົນໃຈແລະຈຸດສຸມແລະເກັບ ກຳ ແສງໄຟທັງ ໝົດ ທີ່ ນຳ ໃຊ້.

ສະນັ້ນພວກເຮົາວາງແຜນພື້ນທີ່ທີ່ແຕກຕ່າງກັນແນວໃດໃນໂລກ 3D ຂອງໄຟພື້ນຫລັງແລະແຫຼ່ງແສງຂອງພວກເຮົາ. ແຕ່ວິທີການຂອງ Lambert ເຮັດວຽກໄດ້ພຽງແຕ່ ສຳ ລັບວັດສະດຸທີ່ ໜ້າ ດິນສະທ້ອນແສງຈາກທຸກທິດທາງ; ວັດຖຸທີ່ເຮັດດ້ວຍແກ້ວຫລືໂລຫະຈະຜະລິດປະເພດສະທ້ອນແສງທີ່ແຕກຕ່າງກັນແລະສິ່ງນີ້ເອີ້ນວ່າ ສະທ້ອນໃຫ້ເຫັນ ແລະຕາມ ທຳ ມະຊາດ, ມັນມີສົມຜົນ ສຳ ລັບສິ່ງນັ້ນເຊັ່ນກັນ!

ລັກສະນະທີ່ແຕກຕ່າງກັນຂອງສູດນີ້ປະຈຸບັນຄວນຈະຄຸ້ນເຄີຍ: ພວກເຮົາມີສອງສີທີ່ມີຄ່າ (ຄື ໜຶ່ງ ສຳ ລັບພື້ນຜິວ, CSແລະອີກອັນ ໜຶ່ງ ສຳ ລັບແສງສະຫວ່າງ, CLS) ເຊັ່ນດຽວກັນກັບປັດໃຈການເອົາໃຈໃສ່ປົກກະຕິແລະຈຸດເດັ່ນ.

ເນື່ອງຈາກວ່າການສະທ້ອນໂດຍສະເພາະແມ່ນສຸມໃສ່ສູງແລະເປັນທິດທາງ, ສອງແກັບຖືກໃຊ້ເພື່ອ ກຳ ນົດຄວາມແຮງຂອງແສງສະເພາະ: ຄວາມປົກກະຕິຂອງ vertex ແລະເຄິ່ງ vector. ຕົວຄູນ p ເອີ້ນວ່າ ພະລັງງານສະທ້ອນ specularແລະຕົວເລກທີ່ປັບຕົວວ່າການສະທ້ອນແສງຈະແຈ້ງຂື້ນກັບຄຸນລັກສະນະທາງດ້ານວັດຖຸຂອງພື້ນຜິວ. ເມື່ອຂະ ໜາດ ຂອງ P ເພີ່ມຂື້ນ, ຜົນກະທົບຂອງການຄາດເດົາຈະມີຄວາມສະຫວ່າງ, ມີຈຸດສຸມແລະມີຂະ ໜາດ ນ້ອຍກວ່າ.

ທິດທາງເຮັດໃຫ້ມີແສງສຸດທ້າຍທີ່ຈະຄິດໄລ່ແມ່ນງ່າຍດາຍທີ່ສຸດຂອງການແບກຫາບ, ເພາະວ່າມັນເປັນພຽງຕົວເລກເທົ່ານັ້ນ. ມັນ​ຖືກ​ເອີ້ນ​ວ່າ ສະແດງອອກ ແລະ ສຳ ລັບວັດຖຸທີ່ມີແຫຼ່ງແສງໂດຍກົງ - ຕົວຢ່າງ. ດອກໄຟ, ໄຟສາຍຫລືແສງຕາເວັນ.

ນີ້ ໝາຍ ຄວາມວ່າພວກເຮົາມີ ຈຳ ນວນ 1 ຕົວເລກແລະ 3 ສົມຜົນເພື່ອຄິດໄລ່ສີຂອງວົງຄະນິດສາດເທິງ ໜ້າ ດິນ, ຄິດໄລ່ການສ່ອງແສງພື້ນຫລັງ (ສະພາບແວດລ້ອມ) ແລະການປະຕິ ສຳ ພັນລະຫວ່າງແຫຼ່ງແສງຕ່າງໆແລະຄຸນລັກສະນະທາງດ້ານວັດຖຸ (ດ້ານການແຜ່ກະຈາຍແລະການຄາດເດົາ). ນັກຂຽນໂປແກຼມສາມາດເລືອກທີ່ຈະໃຊ້ພຽງ ໜຶ່ງ ດຽວຫຼືລວມທັງສີ່ຢ່າງເຂົ້າກັນ.

ສາຍຕາ, ການປະສົມປະສານມີລັກສະນະດັ່ງກ່າວ:

ສົມຜົນທີ່ພວກເຮົາ ກຳ ລັງຊອກຫາແມ່ນຖືກ ນຳ ໃຊ້ໂດຍ API ກາຟິກເຊັ່ນ Direct3D ແລະ OpenGL ໃນຂະນະທີ່ ນຳ ໃຊ້ຟັງຊັນມາດຕະຖານຂອງມັນ, ແຕ່ມີສູດການຄິດໄລ່ທາງເລືອກ ສຳ ລັບແສງໄຟແຕ່ລະປະເພດ. ຍົກຕົວຢ່າງ, ລັງກິນອາຫານ Oren-Nayar modeli ເໝາະ ສຳ ລັບພື້ນຜິວທີ່ຫຍາບຄາຍຈາກ Lambertian.

ສົມຜົນການຄາດເດົາກ່ອນ ໜ້າ ນີ້ໃນບົດຄວາມນີ້ສາມາດຖືກທົດແທນໂດຍແບບທີ່ອະທິບາຍເຖິງຄວາມຈິງທີ່ວ່າພື້ນຜິວທີ່ກ້ຽງຫຼາຍເຊັ່ນ: ແກ້ວແລະໂລຫະແມ່ນຍັງຫຍາບແຕ່ກ້ອງຈຸລະທັດ. Tagged ເປັນ ສູດການຄິດໄລ່ microfacetພວກເຂົາສະ ເໜີ ຮູບພາບທີ່ມີຄວາມເປັນຈິງຫຼາຍກວ່າຄ່າໃຊ້ຈ່າຍຂອງຄວາມສັບສົນທາງຄະນິດສາດ.

ຮູບແບບເຮັດໃຫ້ມີແສງໄຟຟ້າໃດກໍ່ຕາມທີ່ຖືກ ນຳ ໃຊ້, ມັນທັງ ໝົດ ແມ່ນໄດ້ຮັບການປັບປຸງດີຂື້ນໂດຍການເພີ່ມຄວາມຖີ່ຂອງການທີ່ສົມຜົນຖືກ ນຳ ໃຊ້ໃນພາບ 3D.

ຕໍ່ vertex ຫຼືຕໍ່ pixel

ເມື່ອພວກເຮົາເບິ່ງ ການປຸງແຕ່ງແຈ ve rasterizationພວກເຮົາໄດ້ເຫັນວ່າຜົນໄດ້ຮັບຈາກການຄິດໄລ່ແສງໄຟທີ່ລຶກລັບທີ່ເຮັດໃນແຕ່ລະ vertex ຕ້ອງໄດ້ຮັບການຕີຄວາມ ໝາຍ ຕາມ ໜ້າ ດິນລະຫວ່າງມູມ. ນີ້ແມ່ນຍ້ອນວ່າຄຸນສົມບັດທັງ ໝົດ ທີ່ກ່ຽວຂ້ອງກັບວັດສະດຸຂອງ ໜ້າ ດິນແມ່ນຕັ້ງຢູ່ແຈ; ເມື່ອໂລກ 3D ຖືກບີບອັດເຂົ້າໃນຕາຂ່າຍໄຟຟ້າ 2D pixel, ຈະມີພຽງແຕ່ 1 ພິກະເຊນເທົ່ານັ້ນບ່ອນທີ່ vertex ຕັ້ງຢູ່.

ສ່ວນທີ່ເຫຼືອຂອງ pixels ຄວນຈະໃຫ້ຂໍ້ມູນສີຂອງ vertex ເພື່ອໃຫ້ສີສັນປະສົມກັບພື້ນຜິວ. ປີ 1971, ສ. Henri Gouraud, ຫຼັງຈາກນັ້ນຈົບຈາກມະຫາວິທະຍາໄລ Utah, ໄດ້ແນະ ນຳ ວິທີການເພື່ອເຮັດສິ່ງນີ້ແລະດຽວນີ້ ຮົ່ມ Gouraud.

ວິທີການດັ່ງກ່າວແມ່ນໄວແລະສົມຄວນ ຕົວຈິງແລ້ວ ມັນເປັນວິທີທີ່ຈະເຮັດສິ່ງນີ້ເປັນເວລາຫລາຍປີ, ແຕ່ບໍ່ແມ່ນບໍ່ມີບັນຫາ. ມັນພະຍາຍາມທີ່ຈະຕີຄວາມ ໝາຍ ຂອງການເຮັດໃຫ້ມີແສງສະຫວ່າງ, ແລະຖ້າວ່າຮູບຮ່າງຂອງມັນແມ່ນຂອງຕົວເລກນ້ອຍໆ, ການປະສົມລະຫວ່າງຕົ້ນ ກຳ ເນີດຈະບໍ່ຖືກຕ້ອງ.

ວິທີແກ້ໄຂບັນຫານີ້ໄດ້ຖືກສະ ເໜີ ໂດຍ Bui Tuong Phong ຂອງມະຫາວິທະຍາໄລ Utah ໃນປີ 1973 - ໃນເອກະສານຄົ້ນຄ້ວາຂອງລາວ, Phong ໄດ້ສະແດງວິທີການຕີຄວາມ ໝາຍ ສຳ ລັບມາດຕະຖານສູງສຸດກ່ຽວກັບ ໜ້າ ດິນທີ່ຖືກ rasterized. ນີ້ ໝາຍ ຄວາມວ່າການແຜ່ກະຈາຍແລະຮູບແບບການສະທ້ອນແບບຄາດເດົາຈະເຮັດວຽກໄດ້ຢ່າງຖືກຕ້ອງໃນທຸກໆພິກເຊວ, ແລະ David Eck ປື້ມແບບຮຽນ online ກາຟິກຄອມພິວເຕີແລະ WebGL.

ຂອບ chunky ແມ່ນສີໂດຍມີຮູບແບບການສ່ອງແສງແບບດຽວກັນ, ແຕ່ຄິດໄລ່ຕາມລວງຍາວທາງເບື້ອງຊ້າຍ, ແລະຫຼັງຈາກນັ້ນໃຊ້ການຮົ່ມ Gouraud ເພື່ອຕີຄວາມ ໝາຍ ເທິງພື້ນຜິວ. ໂລກຢູ່ເບື້ອງຂວາເຮັດສິ່ງນີ້ຕໍ່ພິກະເຊນແລະຄວາມແຕກຕ່າງແມ່ນຈະແຈ້ງ.

ຮູບພາບຍັງບໍ່ປະຕິບັດຄວາມຍຸດຕິ ທຳ ພຽງພໍໃນການປັບປຸງ ຮົ່ມ Feng ເອົາ, ແຕ່ທ່ານສາມາດທົດລອງການສາທິດຕົວເອງໂດຍໃຊ້ Eck's ການສາທິດ onlineແລະເບິ່ງມັນມີຊີວິດ.

ພົງບໍ່ໄດ້ຢຸດຢູ່ທີ່ນັ້ນ, ແລະສອງສາມປີຕໍ່ມາໄດ້ເຜີຍແຜ່ເອກະສານຄົ້ນຄ້ວາອີກສະແດງໃຫ້ເຫັນວິທີການຄິດໄລ່ແຍກຕ່າງຫາກ ສຳ ລັບການເຮັດໃຫ້ມີແສງອາກາດລ້ອມຮອບ, ໄຟຟ້າແລະແສງສະຫວ່າງທີ່ແປກປະຫຼາດສາມາດເຮັດໄດ້ໃນສົມຜົນດຽວ:

ໂອເຄ, ຫຼາຍເກີນໄປທີ່ຈະຜ່ານ! ຄຸນຄ່າທີ່ລະບຸໂດຍຈົດ ໝາຍ k ແມ່ນ ຈຳ ນວນສະທ້ອນແສງ ສຳ ລັບອາກາດລ້ອມຮອບ, ກະແຈກກະຈາຍແລະໄຟເຍືອງທາງ - ແຕ່ລະສ່ວນແມ່ນອັດຕາສ່ວນຂອງປະເພດແສງນັ້ນກັບ ຈຳ ນວນແສງໄຟ; C ຄ່າທີ່ເຮົາໄດ້ເຫັນໃນສົມຜົນກ່ອນ ໜ້າ ນີ້ (ຄຸນຄ່າສີຂອງວັດສະດຸພື້ນຜິວ ສຳ ລັບແສງໄຟແຕ່ລະປະເພດ).

ແວ່ນ R ມັນແມ່ນ vector 'ການສະທ້ອນແສງສະຫວ່າງທີ່ສົມບູນແບບ' - ຖືກຄິດໄລ່ໂດຍໃຊ້ທິດທາງທີ່ແສງສະທ້ອນແສງຈະເກີດຂື້ນຖ້າພື້ນຜິວກ້ຽງດີແລະປົກກະຕິຂອງ ໜ້າ ດິນແລະເວບແສງສະຫວ່າງຂອງເຫດການ. ແວ່ນ C ແມ່ນ vector ທິດທາງຂອງກ້ອງຖ່າຍຮູບ; ທັງ​ສອງ R ve C ຈາກnormalleştirilir.

ສຸດທ້າຍ, ມັນມີຄວາມຄົງທີ່ ໜຶ່ງ ອີກໃນສົມຜົນ: α ກຳ ນົດວ່າພື້ນຜິວມີຄວາມສະຫວ່າງສ່ ຳ ໃດ. ອຸປະກອນທີ່ອ່ອນລົງ (ເຊັ່ນ: ແກ້ວ / ໂລຫະທີ່ຄ້າຍຄືກັບໂລຫະຫຼາຍ), ຕົວເລກທີ່ສູງກວ່າ.

ສົມຜົນນີ້ແມ່ນປົກກະຕິແລ້ວ ຮູບແບບການສະທ້ອນຜົ້ງສາລີແລະໃນເວລາຄົ້ນຄ້ວາຕົ້ນສະບັບ, ຂໍ້ສະ ເໜີ ດັ່ງກ່າວແມ່ນຮາກຖານຍ້ອນວ່າມັນຕ້ອງການພະລັງງານຄອມພິວເຕີ້ທີ່ຮຸນແຮງ. ສະບັບລຽບງ່າຍ ຈິມ Blinnການ ນຳ ໃຊ້ພາກສ່ວນພາຍໃນສູດ R ve C, ກັບ H ve N (ເຄິ່ງວັກແລະພື້ນຜິວປົກກະຕິ). ມູນຄ່າ R ມັນຕ້ອງໄດ້ຖືກຄິດໄລ່ ສຳ ລັບແຕ່ລະແສງ, ສຳ ລັບທຸກໆ pixel ໃນກອບ. H ມັນພຽງແຕ່ຕ້ອງການ ຄຳ ນວນຄັ້ງ ໜຶ່ງ ຕໍ່ແສງ ສຳ ລັບສາກທັງ ໝົດ.

ຮູບແບບການສະທ້ອນ Blinn-Phong ມັນແມ່ນລະບົບໄຟເຍືອງທາງມາດຕະຖານທີ່ໃຊ້ໃນປະຈຸບັນແລະແມ່ນ Direct3D, OpenGL, Vulkan ແລະອື່ນໆ. ແມ່ນວິທີການເລີ່ມຕົ້ນທີ່ໃຊ້ໂດຍ.

ມີຫລາຍໆຕົວເລກຄະນິດສາດຢູ່ທີ່ນັ້ນ, ໂດຍສະເພາະ GPU ສາມາດຈັດການແບບພິກະເຊນໂດຍຜ່ານການສັ່ນຂະ ໜາດ ໃຫຍ່, ສັບສົນ; ຮ່ວມກັນ, ສູດເຫຼົ່ານີ້ເອີ້ນວ່າ ກະຈົກຂາຍ / ການກະຈາຍໄຟຟ້າ bidirectional (BRDF / BTFD ເປັນເວລາສັ້ນໆ) ແລະເມື່ອພວກເຮົາຫຼີ້ນເກມ 3D ລ້າສຸດ, ພວກມັນປະກອບເປັນພື້ນຖານຂອງສີໃນທຸກໆພິກະເຊນທີ່ພວກເຮົາເຫັນຢູ່ ໜ້າ ຈໍຂອງພວກເຮົາ.

ເຖິງຢ່າງໃດກໍ່ຕາມ, ພວກເຮົາພຽງແຕ່ເບິ່ງພື້ນຜິວ ສະທ້ອນໃຫ້ເຫັນ ແສງສະຫວ່າງ: ອຸປະກອນການແປທີ່ຊ່ວຍໃຫ້ແສງສະຫວ່າງຜ່ານ, ແລະດັ່ງນັ້ນແສງສະຫວ່າງແສງສະຫວ່າງ ສະທ້ອນ. ແລະບາງ ໜ້າ ດິນເຊັ່ນ: ນໍ້າຈະຖືກສະທ້ອນແລະສົ່ງຕໍ່ໃນທຸກໆມາດຕະການ.

ການສ່ອງສະຫວ່າງໃນລະດັບຕໍ່ໄປ

ຂໍໃຫ້ພິຈາລະນາໃນຫົວຂໍ້ປີ 2018 ຂອງ Ubisoft Creed ລອບຄ່າຂອງ: Odyssey - ເກມນີ້ບັງຄັບໃຫ້ທ່ານໃຊ້ເວລາຂີ່ເຮືອເທິງນ້ ຳ ຫຼາຍ, ເຊັ່ນ: ແມ່ນ້ ຳ ທີ່ຕື້ນແລະບໍລິເວນແຄມຝັ່ງແລະທະເລເລິກ.

ເພື່ອເຮັດໃຫ້ນ້ ຳ ມີຄວາມເປັນຈິງເທົ່າທີ່ຈະເປັນໄປໄດ້, ແຕ່ໃນເວລາດຽວກັນຮັກສາລະດັບການເຮັດວຽກທີ່ ເໝາະ ສົມ, ນັກຂຽນໂປແກຼມຂອງ Ubisoft ໄດ້ ນຳ ໃຊ້ຫຼາຍໆວິທີເພື່ອເຮັດໃຫ້ທຸກຢ່າງເຮັດວຽກໄດ້. ພື້ນຜິວຂອງນ້ ຳ ປະກອບດ້ວຍສິ່ງແວດລ້ອມທີ່ປົກກະຕິ, ມີຄວາມສັບສົນແລະມີລັກສະນະພິເສດ, ແຕ່ວ່າມີບາງສິ່ງທີ່ເພີ່ມເຕີມມາພ້ອມ.

ຫນ້າທໍາອິດ, ມັນຖືກນໍາໃຊ້ຢ່າງກວ້າງຂວາງເພື່ອຜະລິດຄຸນລັກສະນະທີ່ສະທ້ອນຂອງນ້ໍາ: sເຊື່ອໃນການສະທ້ອນແສງອະວະກາດ (SSR ໃຫ້ສັ້ນ). ເຕັກນິກນີ້ເຮັດວຽກໄດ້ໂດຍການສະແດງສະຖານທີ່, ແຕ່ສີພິກະເຊນ ຄວາມເລິກ ພິກະເຊນນັ້ນ - ນັ້ນແມ່ນ, ໄກຈາກກ້ອງຖ່າຍຮູບ - ແລະ buffer ຄວາມເລິກ. ກອບຫລັງຈາກນັ້ນກໍ່ຖືກສ້າງຂື້ນ ໃໝ່ ດ້ວຍການເຮັດໃຫ້ມີແສງແລະໂຄງສ້າງ ທຳ ມະດາ, ແຕ່ສະຖານທີ່ແມ່ນກ ສ້າງໂຄງສ້າງແທນທີ່ຈະປ້ອງກັນຄັ້ງສຸດທ້າຍທີ່ຈະຖືກສົ່ງໄປຫາຈໍຕິດຕາມ.

ຫລັງຈາກນັ້ນ, ຈຸດ ໜຶ່ງ ຍ່າງເລົາ ສຳ ເລັດແລ້ວ. ນີ້ກ່ຽວຂ້ອງກັບການສົ່ງ beam ຈາກກ້ອງແລະຫຼັງຈາກນັ້ນແລ່ນລະຫັດໃນໄລຍະທີ່ ກຳ ນົດຕາມເສັ້ນທາງຂອງ beam ເພື່ອກວດເບິ່ງຄວາມເລິກຂອງ beam ຕໍ່ກັບ pixels ໃນ buffer. ເມື່ອພວກມັນມີຄ່າເທົ່າກັນ, ລະຫັດຫຼັງຈາກນັ້ນກວດເບິ່ງພິກະເຊນຂອງ pixel ເພື່ອເບິ່ງວ່າມັນ ກຳ ລັງເບິ່ງກ້ອງຖ່າຍຮູບຫຼືບໍ່, ແລະຖ້າເປັນດັ່ງນັ້ນ, ເຄື່ອງຈັກຊອກຫາ pixel ທີ່ສອດຄ້ອງກັນຈາກໂຄງສ້າງ render. ຫຼັງຈາກນັ້ນ, ຄຳ ແນະ ນຳ ອີກຊຸດ ໜຶ່ງ ຈະປ່ຽນ ຕຳ ແໜ່ງ ຂອງພິກະເຊນດັ່ງນັ້ນມັນຈຶ່ງຖືກຄາດເດົາຢ່າງຖືກຕ້ອງ.

ເມື່ອແສງສະຫວ່າງຍັງຜ່ານສ່ວນປະກອບຕ່າງໆແລະຈະກະແຈກກະຈາຍໄປ ສຳ ລັບນ້ ຳ ແລະລົດນິຍົມຂອງຜິວ ໜັງ, ອີກວິທີ ໜຶ່ງ ຖືກໃຊ້ - ມັນຖືກເອີ້ນວ່າ ກະແຈກກະຈາຍຍ່ອຍ (CNS). ພວກເຮົາຈະບໍ່ເຂົ້າໄປໃນຄວາມເລິກຂອງເຕັກນິກນີ້ຢູ່ທີ່ນີ້, ແຕ່ທ່ານສາມາດຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບວິທີທີ່ມັນສາມາດຖືກນໍາໃຊ້ເພື່ອບັນລຸຜົນໄດ້ຮັບທີ່ຫນ້າປະຫລາດໃຈດັ່ງທີ່ເຫັນຢູ່ຂ້າງລຸ່ມນີ້. ການ ນຳ ສະ ເໜີ ປີ 2014 ຂອງ Nvidia.

ການກັບມາໃຊ້ນ້ ຳ ໃນ Creed ຂອງ Assassin, ການຈັດຕັ້ງປະຕິບັດ FAQ ແມ່ນມີລັກສະນະພິເສດຫຼາຍຍ້ອນວ່າມັນບໍ່ໄດ້ຖືກ ນຳ ໃຊ້ຢ່າງສົມບູນ ສຳ ລັບເຫດຜົນການປະຕິບັດ. ໃນຫົວຂໍ້ AC ກ່ອນ ໜ້າ ນີ້, Ubisoft FAQ ປອມແປງ ເຖິງຢ່າງໃດກໍ່ຕາມ, ໃນສະບັບສຸດທ້າຍມັນມີຄວາມສັບສົນຫຼາຍໃນການ ນຳ ໃຊ້, ແຕ່ຍັງບໍ່ທັນເຖິງຂອບເຂດທີ່ພວກເຮົາເຫັນໃນການສາທິດຂອງ Nvidia.

ໂດຍການດັດປັບຄວາມໂປ່ງໃສຕາມໄລຍະທາງຈາກຝັ່ງ, ມີການປະຕິບັດເພີ່ມເຕີມເພື່ອປ່ຽນຄຸນຄ່າແສງສະຫວ່າງເທິງ ໜ້າ ນ້ ຳ ແລະສ້າງແບບຢ່າງຂອງຜົນກະທົບຂອງຄວາມເລິກຢ່າງຖືກຕ້ອງ. ແລະໃນເວລາທີ່ກ້ອງຖ່າຍຮູບເບິ່ງນ້ ຳ ຢູ່ໃກ້ຝັ່ງ, ມີການປຸງແຕ່ງສູດການຄິດໄລ່ຫຼາຍຂື້ນເພື່ອຄິດໄລ່ຄວາມເປັນປົກກະຕິແລະສະກັດກັ້ນ.

ຜົນໄດ້ຮັບແມ່ນຫນ້າປະທັບໃຈ, ເວົ້າຫນ້ອຍທີ່ສຸດ:

ມັນຖືກປົກຄຸມໄປໃນນໍ້າ, ແຕ່ວ່າຈະເປັນແນວໃດເມື່ອແສງສະຫວ່າງໄຫຼຜ່ານທາງອາກາດ? ອະນຸພາກຝຸ່ນ, ຄວາມຊຸ່ມ, ແລະອື່ນໆ. ມັນກະແຈກກະຈາຍແສງສະຫວ່າງດີ. ນີ້ເຮັດໃຫ້ແສງສະຫວ່າງຂອງແສງສະຫວ່າງດັ່ງທີ່ພວກເຮົາເຫັນ. ລາວ ແທນທີ່ຈະພຽງແຕ່ເປັນກຸ່ມກົງຂອງຄີຫຼັງ.

ຫົວຂໍ້ຂອງການເຮັດໃຫ້ມີແສງ volumetric ສາມາດຂະຫຍາຍອອກໄດ້ຫລາຍສິບຫົວບົດອື່ນໆດ້ວຍຕົນເອງ, ດັ່ງນັ້ນ ການເພີ່ມຂຶ້ນຂອງ Tomb Raider ເບິ່ງແຍງມັນ. ໃນວິດີໂອຂ້າງລຸ່ມນີ້ມີ 1 ແຫລ່ງແສງສະຫວ່າງຫລັກ: ແສງແດດສ່ອງຜ່ານການເປີດໃນຕຶກ.

ເພື່ອຜະລິດປະລິມານແສງສະຫວ່າງ, ເຄື່ອງຈັກເກມຈະເຮັດໃຫ້ກ້ອງກັງວົນໃຈ (ເບິ່ງຂ້າງລຸ່ມນີ້) ແລະແບ່ງມັນອອກເປັນ 64 ສ່ວນບົນພື້ນຖານຂອງຄວາມເລິກໂດຍການພັບ. ຫຼັງຈາກນັ້ນ ນຳ ແຕ່ລະທ່ອນໆຖືກຂັງເຂົ້າໄປໃນຕາຂ່າຍໄຟຟ້າ 160 x 94 ອົງປະກອບ, ເຊິ່ງສ່ວນຫຼາຍແມ່ນເກັບໄວ້ໃນໂຄງສ້າງ 3D render FP32. ຍ້ອນວ່າໂຄງສ້າງແມ່ນປົກກະຕິ 2D, ພວກມັນຖືກເອີ້ນວ່າ 'pixels' ຂອງປະລິມານທີ່ອຸກອັ່ງ ຂີ້ເຜີ້ງຫຼື.

ສຳ ລັບບລັອກຂະ ໜາດ 4 x 4 x 4, ຄຳ ນວນ shaders ກຳ ນົດວ່າໄຟທີ່ໃຊ້ງານນັ້ນມີຜົນກະທົບຕໍ່ລະດັບສຽງນີ້ແນວໃດແລະຂຽນຂໍ້ມູນນັ້ນໃສ່ກັບໂຄງສ້າງການສະແດງແບບ 3D ອີກ. ສູດສັບຊ້ອນທີ່ຮູ້ກັນໃນນາມ ຟັງຊັນກະແຈກກະຈາຍ Henyey-Greensteinຫຼັງຈາກນັ້ນມັນຖືກນໍາໃຊ້ເພື່ອປະເມີນຄວາມຮຸນແຮງຂອງແສງໂດຍລວມພາຍໃນທ່ອນໄມ້ voxel.

ຫຼັງຈາກນັ້ນເຄື່ອງຈັກຈະແລ່ນຮົ່ມຫຼາຍຂື້ນເພື່ອເກັບ ກຳ ຂໍ້ມູນກ່ອນທີ່ຈະຍ່າງຂ້າມທ່ອນໄມ້ທີ່ອຸກອັ່ງ, ສະສົມຄ່າແສງແສງ. ໃນ Xbox One, ລັດ Eidos-Montréal ວ່າສິ່ງເຫລົ່ານີ້ສາມາດເຮັດໄດ້ປະມານ 0.8 ມິນລິລິດ!

ໃນຂະນະທີ່ນີ້ບໍ່ແມ່ນວິທີການທີ່ໃຊ້ໂດຍເກມທັງ ໝົດ, ການເຮັດໃຫ້ມີແສງ volumetric ຖືກຄາດໄວ້ໃນເກືອບທຸກເກມ 3D ຍອດນິຍົມທີ່ປ່ອຍອອກມາໃນມື້ນີ້, ໂດຍສະເພາະແມ່ນນັກຖ່າຍຮູບຄົນ ທຳ ອິດແລະເຫດການປະຕິບັດ.

ໃນເບື້ອງຕົ້ນ, ເຕັກນິກການເຮັດໃຫ້ມີແສງນີ້ຖືກເອີ້ນວ່າ 'ຄີຫຼັງຂອງພະເຈົ້າ' - ຫຼືເພື່ອໃຫ້ ຄຳ ສັບວິທະຍາສາດທີ່ຖືກຕ້ອງ, ຄີຫຼັງຂອງຄີຫຼັງ ແລະ ໜຶ່ງ ໃນບັນດາ ຕຳ ແໜ່ງ ທຳ ອິດທີ່ໃຊ້ມັນແມ່ນຕົ້ນສະບັບ ຮ້ອງໄຫ້ 2007 'ຈາກ Crytek'ten.

ມັນບໍ່ແມ່ນການເຮັດໃຫ້ມີແສງ volumetric ແທ້ໆ, ເພາະວ່າຂັ້ນຕອນນີ້ແມ່ນເພື່ອ ທຳ ການສະແດງພາບຖ່າຍເປັນ buffer ຄວາມເລິກແລະໃຊ້ມັນເພື່ອສ້າງ ໜ້າ ກາກ - ອີກດ້ານ ໜຶ່ງ ທີ່ສີ pixel ໃກ້ກັບກ້ອງ.

ໜ້າ ກາກ ໜ້າ ກາກນີ້ໄດ້ຖືກເກັບຕົວຢ່າງຫຼາຍໆຄັ້ງ, shader ເອົາຕົວຢ່າງແລະເຮັດໃຫ້ມົວ. ຜົນໄດ້ຮັບຫຼັງຈາກນັ້ນກໍ່ປະສົມກັບສາກສຸດທ້າຍດັ່ງຮູບຂ້າງລຸ່ມນີ້:

ການພັດທະນາຂອງກາຟິກກາຟິກແມ່ນມີຄວາມຫລວງຫລາຍໃນ 12 ປີທີ່ຜ່ານມາ. GPU ທີ່ມີປະສິດທິພາບສູງສຸດໃນການເປີດຕົວ Crysis GeForce 8800 Ultra - GPU ໄວທີ່ສຸດໃນປະຈຸບັນ, GeForce RTX 2080 Ti ມັນມີພະລັງງານຄອມພິວເຕີ້ 30 ເທົ່າ, ຫນ່ວຍຄວາມ ຈຳ 14 ເທົ່າແລະແບນວິດ 6 ເທົ່າ.

ໂດຍໃຊ້ປະໂຫຍດຈາກ ອຳ ນາດການປຽບທຽບທັງ ໝົດ ນີ້, ເກມຂອງມື້ນີ້ສາມາດເຮັດວຽກໄດ້ດີຂື້ນໃນແງ່ຂອງຄວາມຖືກຕ້ອງທາງສາຍຕາແລະການປະຕິບັດໂດຍລວມ, ເຖິງວ່າຈະມີການເພີ່ມຂື້ນຂອງຄວາມສັບສົນໃນການເບິ່ງເຫັນ.

ແຕ່ສິ່ງທີ່ຜົນກະທົບຕົວຈິງສະແດງໃຫ້ເຫັນວ່າມີຄວາມ ສຳ ຄັນຕໍ່ຄວາມຖືກຕ້ອງທາງສາຍຕາພ້ອມທັງການເຮັດໃຫ້ມີແສງທີ່ຖືກຕ້ອງ. ການຂາດ ແສງສະຫວ່າງທີ່ເຮັດໃຫ້ມີຄວາມແຕກຕ່າງ.

ເນື້ອແທ້ຂອງເງົາ

ໃຫ້ໃຊ້ Tomb Raider ເງົາ ເພື່ອເລີ່ມຕົ້ນພາກຕໍ່ໄປຂອງບົດຄວາມນີ້. ໃນຮູບຂ້າງລຸ່ມນີ້, ການຕັ້ງຄ່າກາຟິກທັງ ໝົດ ທີ່ກ່ຽວຂ້ອງກັບເງົາແມ່ນຖືກປິດໃຊ້ງານ; ຢູ່ເບື້ອງຂວາ, ເປີດທຸກຢ່າງ. ຄວາມແຕກຕ່າງ, ແມ່ນບໍ?

ນັບຕັ້ງແຕ່ເງົາໄດ້ເກີດຂື້ນຢ່າງເປັນ ທຳ ມະຊາດໃນສະພາບແວດລ້ອມຂອງພວກເຮົາ, ເກມໃດກໍ່ຕາມທີ່ເຮັດໃຫ້ພວກເຂົາບໍ່ດີຈະບໍ່ຖືກຕ້ອງ. ເນື່ອງຈາກວ່າສະ ໝອງ ຂອງພວກເຮົາໄດ້ຮັບການປັບປ່ຽນເພື່ອໃຊ້ເງົາເປັນການອ້າງອິງສາຍຕາເພື່ອສ້າງຄວາມຮູ້ສຶກກ່ຽວກັບຄວາມເລິກ, ຕຳ ແໜ່ງ ແລະການເຄື່ອນໄຫວ. ແຕ່ການເຮັດສິ່ງນີ້ໃນເກມ 3D ແມ່ນມີຄວາມຫຍຸ້ງຍາກທີ່ ໜ້າ ປະຫລາດໃຈ, ຫລືຢ່າງ ໜ້ອຍ ກໍ່ຍາກທີ່ຈະເຮັດຢ່າງຖືກຕ້ອງ.

ໃຫ້ເລີ່ມຕົ້ນດ້ວຍເປັດ TECH NEWS. ຢູ່ທີ່ນີ້ລາວຍ່າງຜ່ານທົ່ງນາແລະແສງແດດຂອງແສງແດດໄປຮອດເປັດຂອງພວກເຮົາແລະຖືກກັກຂັງຕາມທີ່ຄາດໄວ້.

ໜຶ່ງ ໃນວິທີການເກົ່າແກ່ທີ່ສຸດຂອງການເພີ່ມເງົາໃນຮູບແບບດັ່ງກ່າວກໍ່ຄືການເພີ່ມເງົາ 'ຫຼຸດລົງ' ຢູ່ລຸ່ມຮູບແບບ. ມັນບໍ່ເປັນຈິງຈາກບ່ອນໄກ, ເພາະວ່າຮູບຮ່າງຂອງເງົາບໍ່ມີຫຍັງກ່ຽວຂ້ອງກັບຮູບຊົງຂອງວັດຖຸທີ່ປະກອບເປັນເງົາ; ເຖິງຢ່າງໃດກໍ່ຕາມ, ພວກມັນລວດໄວແລະລຽບງ່າຍ.

ເກມ 3D ຕົ້ນໆຄືກັບຕົ້ນສະບັບປີ 1996 Tomb Raider ເກມໄດ້ໃຊ້ວິທີການນີ້ເປັນຮາດແວໃນເວລານັ້ນ - ຄືກັບ Sega Saturn ແລະ Sony PlayStation - ບໍ່ສາມາດເຮັດຫຍັງໄດ້ດີກວ່າ. ເຕັກນິກດັ່ງກ່າວກ່ຽວຂ້ອງກັບການແຕ້ມແບບສະສົມເບື້ອງຕົ້ນທີ່ລຽບງ່າຍຢູ່ ເໜືອ ໜ້າ ດິນທີ່ຕົວແບບ ກຳ ລັງເຄື່ອນຍ້າຍແລະຈາກນັ້ນຮົ່ມມັນຢູ່ບ່ອນມືດ; ທາງເລືອກອື່ນແມ່ນການແຕ້ມໂຄງສ້າງທີ່ລຽບງ່າຍ.

ວິທີການເລີ່ມຕົ້ນອື່ນ ການຄາດຄະເນເງົາ. ໃນຂະບວນການນີ້, ຮູບເງົາເບື້ອງຕົ້ນຂອງເງົາແມ່ນຖືກຄາດໃສ່ຍົນທີ່ບັນຈຸພື້ນດິນ. ບາງຄະນິດສາດ ສຳ ລັບເລື່ອງນີ້ຖືກພັດທະນາໂດຍ Jim Blinn ໃນທ້າຍຊຸມປີ 80. ມັນເປັນຂະບວນການທີ່ກົງໄປກົງມາໂດຍມາດຕະຖານຂອງມື້ນີ້ແລະເຮັດວຽກໄດ້ດີທີ່ສຸດ ສຳ ລັບວັດຖຸທີ່ລຽບງ່າຍແລະສະຫງ່າງາມ.

ແຕ່ດ້ວຍການເພີ່ມປະສິດທິພາບບາງຢ່າງ, ການຄາດຄະເນຂອງເງົາໄດ້ສະ ໜອງ ຄວາມພະຍາຍາມທີ່ດີຄັ້ງ ທຳ ອິດທີ່ມີເງົາເຄື່ອນໄຫວ, ດັ່ງທີ່ເຫັນໃນຫົວຂໍ້ຂອງປີ 1999. Kingpin: ຊີວິດຂອງອາຊະຍາ ກຳ. ດັ່ງທີ່ພວກເຮົາເຫັນຢູ່ຂ້າງລຸ່ມ, ມີພຽງແຕ່ຕົວລະຄອນທີ່ມີຊີວິດ (ລວມທັງ ໜູ!) ມີເງົາ, ແຕ່ດີກວ່າ blobs ງ່າຍໆ.

ບັນຫາໃຫຍ່ທີ່ສຸດກັບພວກເຂົາແມ່ນ: (a) ຄວາມຕ້ານທານທັງ ໝົດ ຂອງເງົາທີ່ແທ້ຈິງ, ແລະ (ຂ) ວິທີການຄາດຄະເນແມ່ນຂື້ນກັບການໂຍນເງົາໃສ່ຍົນແປດຽວ (ຕົວຢ່າງ, ໜ້າ ດິນ).

ບັນຫາເຫຼົ່ານີ້ສາມາດແກ້ໄຂໄດ້ໂດຍການ ນຳ ໃຊ້ຄວາມໂປ່ງໃສບາງຢ່າງໃຫ້ກັບການວາງສີເບື້ອງຕົ້ນຂອງໂຄງການແລະການເຮັດຫລາຍໆໂຄງການ ສຳ ລັບແຕ່ລະຕົວລະຄອນ, ແຕ່ໃນທ້າຍຊຸມປີ 90 ຄວາມສາມາດດ້ານຮາດແວຂອງຄອມພີວເຕີ້ບໍ່ ເໝາະ ສົມກັບຄວາມຕ້ອງການການສະແດງຜົນພິເສດຂອງພວກເຂົາ.

ເຕັກໂນໂລຢີທີ່ທັນສະ ໄໝ ຢູ່ເບື້ອງຫຼັງເງົາ

ມີການສະ ເໜີ ວິທີການທີ່ຖືກຕ້ອງກວ່າໃນການເຮັດເງົາໃນປີ 1977. Franklin Crow ໃນຂະນະທີ່ເຮັດວຽກຢູ່ມະຫາວິທະຍາໄລ Texas ໃນ Austin, ເຈ້ຍຄົ້ນຄ້ວາ ສະ ເໜີ ເຕັກນິກຕ່າງໆທີ່ກ່ຽວຂ້ອງກັບການ ນຳ ໃຊ້ເງົາ. ບໍລິມາດ.

ໂດຍທົ່ວໄປ, ຂະບວນການ ກຳ ນົດວ່າຕົ້ນ ກຳ ເນີດໃດທີ່ ກຳ ລັງປະເຊີນກັບແຫຼ່ງແສງ, ແລະຂອບຂອງມັນຖືກລອກອອກເປັນຍົນ. ມາຮອດປະຈຸບັນນີ້ແມ່ນຄ້າຍຄືກັບການຄາດຄະເນເງົາ, ແຕ່ຄວາມແຕກຕ່າງຕົ້ນຕໍແມ່ນວ່າປະລິມານເງົາທີ່ຖືກສ້າງຂື້ນແມ່ນໃຊ້ເພື່ອກວດເບິ່ງວ່າມີພິກະເຊນຢູ່ພາຍໃນ / ນອກ ໜ່ວຍ ບໍລິການ. ຈາກຄວາມຮູ້ນີ້, ປະຈຸບັນທຸກດ້ານສາມາດໂຍນໄດ້ບໍ່ພຽງແຕ່ກັບ ໜ້າ ດິນເທົ່ານັ້ນ, ແຕ່ຍັງມີເງົາອີກດ້ວຍ.

ເຕັກນິກນີ້ຖືກພັດທະນາໂດຍ Tim Heidmann. Silicon Graphics ໃນປີ 1991, ອື່ນໆ ເຄື່ອງ ໝາຍ Kilgard ໃນປີ 1999 ແລະ ສຳ ລັບວິທີການທີ່ພວກເຮົາຈະເບິ່ງ, John Carmack ໃນປີ 2000 ທີ່ id Software (ເຖິງແມ່ນວ່າວິທີການຂອງ Carmack ຖືກຄົ້ນພົບເປັນອິດສະຫຼະເມື່ອ 2 ປີກ່ອນທີ່ Creative Labs ໂດຍ Bilodeau ແລະ Songy, Carmack ໂດຍການປ່ຽນລະຫັດ ເພື່ອຫລີກລ້ຽງຄວາມຫຍຸ້ງຍາກໃນການ ດຳ ເນີນຄະດີ).

ວິທີການດັ່ງກ່າວຮຽກຮ້ອງໃຫ້ສ້າງກອບກອບຫຼາຍຄັ້ງ ( ທະວີຄູນ ການສ້າງ - ຫຼາຍ ໃນຄວາມຕ້ອງການໃນຊຸມປີ 90 ຕົ້ນໆ, ແຕ່ປະຈຸບັນໄດ້ມີຊື່ສຽງທົ່ວໂລກ) ແລະ template buffer.

ບໍ່ຄືກັບ buffers ກອບແລະຄວາມເລິກ, 3D ນີ້ບໍ່ໄດ້ຖືກສະແດງໂດຍສະຖານທີ່ຕົວມັນເອງ - ແທນທີ່ຈະ, buffer ແມ່ນຊຸດຂອງຄ່າເທົ່າກັບຂະ ໜາດ (ເຊັ່ນດຽວກັນ x,y ຄວາມລະອຽດ). ຄ່າທີ່ເກັບໄວ້ແມ່ນຖືກໃຊ້ເພື່ອບອກເຄື່ອງຈັກໃນການເຮັດວຽກທີ່ຈະເຮັດ ສຳ ລັບແຕ່ລະພິກະເຊນໃນກອບຂອງກອບ.

ການໃຊ້ກະດານທີ່ງ່າຍທີ່ສຸດຄືກັບ ໜ້າ ກາກ:

ວິທີການປະລິມານເງົາມີລັກສະນະດັ່ງນີ້:

  • ປ່ຽນສະຖານທີ່ໃຫ້ເປັນກອບປ້ອງກັນເຟຣມ, ແຕ່ໃຊ້ໄຟທີ່ມີອາກາດລ້ອມຮອບເທົ່ານັ້ນ (ເພີ່ມຄຸນຄ່າການປ່ອຍອາຍພິດຖ້າ pixels ມີແຫຼ່ງແສງ)
  • ປັບສະຖານທີ່ແຕ່ວ່າພຽງແຕ່ ສຳ ລັບ ໜ້າ ກ້ອງ ໜ້າ (ກ້ອງ) ຄໍຫລັງ). ສຳ ລັບແຕ່ລະແຫລ່ງແສງສະຫວ່າງ, ຄິດໄລ່ປະລິມານເງົາ (ເຊັ່ນ: ວິທີການຄາດຄະເນ) ແລະກວດເບິ່ງຄວາມເລິກຂອງແຕ່ລະ pixel ຮຽບຮ້ອຍຕາມຂະ ໜາດ. ສຳ ລັບສິ່ງເຫລົ່ານີ້ ພາຍໃນ ປະລິມານເງົາ (ຕົວຢ່າງ: ການທົດສອບຄວາມເລິກ 'ລົ້ມເຫລວ'), ເຮັດໃຫ້ມູນຄ່າເພີ່ມຂື້ນໃນ buffer ແມ່ແບບທີ່ສອດຄ້ອງກັບ pixel ນີ້.
  • ເຮັດເລື້ມຄືນສິ່ງທີ່ກ່າວມາຂ້າງເທິງ, ແຕ່ພ້ອມເປີດໃຊ້ງານ facelift, ລາຍການຂອງ buffer template ຈະຖືກຫຼຸດລົງຖ້າຢູ່ໃນລະດັບສຽງ.
  • ເຮັດວຽກຄືນ ໃໝ່ ທັງ ໝົດ, ແຕ່ເວລານີ້ດ້ວຍການເປີດໃຊ້ງານເຮັດໃຫ້ມີແສງທຸກຢ່າງ, ແຕ່ຜະສົມຜະສານສຸດທ້າຍແລະແບບປ້ອງກັນຂອງແມ່ແບບ.

ພວກເຮົາສາມາດເຫັນການ ນຳ ໃຊ້ໂປແກຼມປ້ອງກັນຕົວແລະປະລິມານເງົາ (ໂດຍທົ່ວໄປເອີ້ນວ່າເງົາຂອງແມ່ແບບ) ໃນການປ່ອຍ id Software ປີ 2004. ອະພິສິດ 3:

ສັງເກດວິທີການເສັ້ນທາງທີ່ຕົວລະຄອນຍ່າງໄປເບິ່ງໃນຮົ່ມ? ນີ້ແມ່ນການພັດທະນາຄັ້ງ ທຳ ອິດກ່ຽວກັບການຄາດຄະເນເງົາ - ສ່ວນອື່ນໆແມ່ນກ່ຽວຂ້ອງກັບການສາມາດອະທິບາຍໄລຍະທາງຂອງແຫຼ່ງແສງສະຫວ່າງໄດ້ດີ (ສົ່ງຜົນໃຫ້ເງົາທີ່ອ່ອນກວ່າ) ແລະຖ່າຍຮູບເງົາເທິງພື້ນຜິວໃດ ໜຶ່ງ (ລວມທັງຕົວລະຄອນຕົວມັນເອງ).

ເຖິງຢ່າງໃດກໍ່ຕາມ, ເຕັກນິກມີຂໍ້ບົກຜ່ອງຮ້າຍແຮງບາງຢ່າງ, ສິ່ງທີ່ ສຳ ຄັນທີ່ສຸດແມ່ນຂື້ນກັບ ຈຳ ນວນເບື້ອງຕົ້ນຂອງຂອບຂອງເງົາທີ່ໃຊ້ເພື່ອເຮັດໃຫ້ວັດຖຸທີ່ເຮັດໃຫ້ເງົາ. ຄວາມຈິງທີ່ວ່າ ທຳ ມະຊາດນີ້ແລະຜ່ານຫຼາຍຢ່າງກ່ຽວຂ້ອງກັບການອ່ານ / ຂຽນຫຼາຍຢ່າງຕໍ່ກັບຄວາມຊົງ ຈຳ ໃນທ້ອງຖິ່ນສາມາດເຮັດໃຫ້ການ ນຳ ໃຊ້ຮູບແບບຂອງເງົາເປັນສິ່ງທີ່ບໍ່ດີແລະມີລາຄາຖືກໃນດ້ານການປະຕິບັດ.

ມັນຍັງມີຂີດ ຈຳ ກັດຕໍ່ ຈຳ ນວນປະລິມານເງົາທີ່ສາມາດຄວບຄຸມດ້ວຍຕົວປ້ອງກັນຂອງແບບ template - ນີ້ແມ່ນຍ້ອນວ່າໂປແກຼມ API ກາຟິກທັງ ໝົດ ຈັດສັນ ຈຳ ນວນບິດທີ່ຂ້ອນຂ້າງ ໜ້ອຍ (ປົກກະຕິພຽງແຕ່ 8). ຄ່າໃຊ້ຈ່າຍໃນການປະຕິບັດງານຂອງເງົາແມ່ແບບມັກຈະຢຸດບັນຫານີ້ຈາກການເກີດຂື້ນ.

ສຸດທ້າຍກໍ່ມີປັນຫາວ່າເງົາບໍ່ເປັນຈິງຈາກໄລຍະໄກ. ຍ້ອນຫຍັງ? ເນື່ອງຈາກວ່າແຫຼ່ງແສງສະຫວ່າງທັງ ໝົດ, ຈາກໂຄມໄຟເຖິງໄຟ, ຈາກໄຟສາຍຈົນເຖິງດວງອາທິດ, ບໍ່ແມ່ນຈຸດດຽວໃນອະວະກາດ - ນັ້ນແມ່ນ, ພວກມັນຈະປ່ອຍແສງຢູ່ທົ່ວພື້ນທີ່. ເງົາທີ່ແທ້ຈິງບໍ່ຄ່ອຍຈະມີຂອບເຂດທີ່ຖືກ ກຳ ນົດແລະແຂງແກ່ນ ສຳ ລັບພວກມັນ, ເຖິງແມ່ນວ່າຜູ້ ໜຶ່ງ ຈະເອົາສິ່ງນີ້ໄປສູ່ລະດັບທີ່ລຽບງ່າຍທີ່ສຸດເທົ່າທີ່ສະແດງຢູ່ຂ້າງລຸ່ມ.

ພື້ນທີ່ມືດມົນທີ່ສຸດຂອງເງົາເອີ້ນວ່າຄັນຮົ່ມ; penumbra ແມ່ນສະເຫມີບ່ອນທີ່ມີຮົ່ມສີມ້ານແລະຂອບເຂດຊາຍແດນລະຫວ່າງສອງມັກຈະເປັນ "blurry" (ຍ້ອນວ່າມີແຫຼ່ງແສງສະຫວ່າງຫຼາຍເກີນໄປ). ສິ່ງນີ້ບໍ່ສາມາດເອົາແບບຢ່າງໄດ້ດີໂດຍໃຊ້ buffers ແລະຫົວ ໜ່ວຍ, ເພາະວ່າເງົາທີ່ຜະລິດບໍ່ໄດ້ຖືກເກັບໄວ້ໃນແບບທີ່ສາມາດປຸງແຕ່ງໄດ້. ເຂົ້າ​ສູ່​ລະ​ບົບ ແຜນທີ່ເງົາ ບັນ​ທຶກ!

ຂັ້ນຕອນພື້ນຖານ ພັດທະນາໂດຍ Lance Williams ຂ້ອນຂ້າງງ່າຍດາຍໃນປີ 1978:

  • ສຳ ລັບແຕ່ລະແຫລ່ງແສງສະຫວ່າງ, ສ້າງສາກຈາກມຸມມອງແສງສະຫວ່າງ, ສ້າງໂຄງສ້າງຄວາມເລິກຂອງລູກຄ້າ (ສີ, ແສງ, ໂຄງສ້າງແລະອື່ນໆ). ຄວາມລະອຽດຂອງ buffer ນີ້ແມ່ນບໍ່ ຈຳ ເປັນຄືກັນກັບກອບສຸດທ້າຍ, ແຕ່ສູງກວ່າຈະດີກວ່າ.
  • ຫຼັງຈາກນັ້ນກໍ່ສ້າງສະຖານທີ່ຈາກມຸມມອງຂອງກ້ອງຖ່າຍຮູບ, ແຕ່ເມື່ອກອບໄດ້ຖືກໂຄດລົງ, ຕຳ ແໜ່ງ ຂອງແຕ່ລະພິກະເຊນ (ໃນ x, y, ແລະ z) ແມ່ນຫັນປ່ຽນໂດຍໃຊ້ແຫລ່ງແສງສະຫວ່າງເປັນແຫຼ່ງຂອງລະບົບປະສານງານ.
  • ຄວາມເລິກຂອງພິກະເຊນທີ່ຖືກປ່ຽນແປງແມ່ນປຽບທຽບກັບ pixels ທີ່ສອດຄ້ອງກັນໃນໂຄງສ້າງຄວາມເລິກທີ່ເກັບໄວ້: ຖ້າ ໜ້ອຍ ກວ່ານັ້ນ, pixels ຈະເປັນເງົາແລະບໍ່ໄດ້ຮັບຂັ້ນຕອນການສ່ອງແສງຢ່າງເຕັມທີ່.

ນີ້ແມ່ນແນ່ນອນອີກຂັ້ນຕອນ ໜຶ່ງ ທີ່ຜ່ານໄປໄດ້, ແຕ່ຂັ້ນຕອນສຸດທ້າຍ, ການຄວບຄຸມຄວາມເລິກແລະການຄິດໄລ່ແສງໄຟຕໍ່ໆໄປສາມາດເຮັດໄດ້ໂດຍໃຊ້ເຄື່ອງສັ່ນ pixel ເພື່ອໃຫ້ການ ຄຳ ນວນໄດ້ຖືກກົມໃນຜ່ານດຽວກັນ. ແລະເນື່ອງຈາກວ່າຂັ້ນຕອນການຮົ່ມທັງ ໝົດ ແມ່ນບໍ່ມີອິດສະຫຼະຈາກການ ນຳ ໃຊ້ຕົ້ນແບບ, ມັນຈະໄວກວ່າການ ນຳ ໃຊ້ແບບ ຈຳ ລອງແລະປະລິມານເງົາ.

ແຕ່ໂຊກບໍ່ດີ, ວິທີການພື້ນຖານທີ່ອະທິບາຍຂ້າງເທິງນີ້ສາມາດ ໝູນ ໃຊ້ຮູບປະດິດຕາທຸກປະເພດ (ເຊັ່ນ ການເບິ່ງຂ້າມມຸມມອງ, ສິວເງົາ, 'peter panning'), ສິ່ງເຫຼົ່ານີ້ສ່ວນໃຫຍ່ແມ່ນກ່ຽວກັບຄວາມລະອຽດຂອງໂຄງສ້າງຄວາມເລິກແລະຂະ ໜາດ ບິດ. ໂປແກຼມ GPU ແລະກາຟິກ API ທັງ ໝົດ ແມ່ນ ຈຳ ກັດຕໍ່ໂຄງສ້າງເຫຼົ່ານີ້, ສະນັ້ນເຕັກນິກເພີ່ມເຕີມ ຈຳ ນວນ ໜຶ່ງ ໄດ້ຖືກສ້າງຂື້ນເພື່ອແກ້ໄຂບັນຫາ.

ປະໂຫຍດ ໜຶ່ງ ຂອງການ ນຳ ໃຊ້ໂຄງສ້າງ ສຳ ລັບຂໍ້ມູນຂ່າວສານທີ່ເລິກເຊິ່ງແມ່ນວ່າ GPU ມີຄວາມສາມາດໃນການເກັບຕົວຢ່າງແລະກັ່ນຕອງມັນຢ່າງໄວວາແລະດ້ວຍຫຼາຍຮູບແບບ. ໃນປີ 2005, Nvidia ໄດ້ສະແດງວິທີການເຮັດຕົວຢ່າງໂຄງສ້າງທີ່ສາມາດແກ້ໄຂບັນຫາສາຍຕາບາງຢ່າງທີ່ເກີດຈາກການວາງແຜນພາບເງົາແບບມາດຕະຖານ, ແລະຍັງໄດ້ໃຫ້ຄວາມອ່ອນນຸ້ມບາງຢ່າງຕໍ່ຂອບຂອງເງົາ; ດ້ານວິຊາການ ເປີເຊັນການກັ່ນຕອງທີ່ໃກ້ຊິດ.

ພ້ອມດຽວກັນນີ້, Futuremark, ແຜນທີ່ເຮັດດ້ວຍເງົາ 3DMark06 ໃນ (CSM) ແມ່ນເຕັກນິກ ໜຶ່ງ ທີ່ໂຄງສ້າງທີ່ມີຄວາມເລິກຫຼາຍຖືກສ້າງຂື້ນດ້ວຍຄວາມລະອຽດທີ່ແຕກຕ່າງກັນ ສຳ ລັບແຕ່ລະແຫຼ່ງແສງ. ໂຄງສ້າງທີ່ມີຄວາມລະອຽດສູງແມ່ນໃຊ້ໃກ້ກັບແສງສະຫວ່າງ, ໂຄງສ້າງລາຍລະອຽດຕ່ ຳ ຖືກໃຊ້ໃນໄລຍະຫ່າງໄກກວ່າແສງ. ຜົນໄດ້ຮັບແມ່ນການຫັນປ່ຽນທີ່ເງົາງາມກວ່າເກົ່າແລະບໍ່ມີການປ່ຽນແປງຂອງເງົາໃນຕະຫລອດເວລາ.

ເຕັກນິກດັ່ງກ່າວໄດ້ຖືກພັດທະນາໃນປີ 2006 ໂດຍ Donnelly ແລະ Laurizten. ແຜນທີ່ເງົາ (VSM) ປົກກະຕິແລະໂດຍ Intel ໃນປີ 2010 ສູດການແຈກຢາຍຕົວຢ່າງ (SDSM).

ນັກພັດທະນາເກມມັກຈະໃຊ້ແບດເຕີລີ່ຂອງເຕັກນິກການຮົ່ມເພື່ອເສີມຂະຫຍາຍສາຍຕາ, ແຕ່ການສ້າງແຜນທີ່ຂອງເງົາຈະປົກປິດອຸໂມງທັງ ໝົດ. ເຖິງຢ່າງໃດກໍ່ຕາມ, ມັນສາມາດ ນຳ ໃຊ້ກັບແຫຼ່ງແສງສະຫວ່າງທີ່ມີການເຄື່ອນໄຫວ ໜ້ອຍ ໜຶ່ງ ເທົ່ານັ້ນ, ຍ້ອນວ່າມັນພະຍາຍາມສ້າງແບບ ຈຳ ລອງໃນແຕ່ລະດ້ານທີ່ສະທ້ອນຫລືປ່ອຍແສງ, ເພາະມັນຈະເຮັດໃຫ້ອັດຕາເຟຣມເປັນຂີ້ຝຸ່ນ.

ໂຊກດີ, ມີເຕັກນິກທີ່ສະອາດເຮັດວຽກໄດ້ດີກັບວັດຖຸໃດ ໜຶ່ງ, ເຮັດໃຫ້ມີຄວາມປະທັບໃຈວ່າແສງສະຫວ່າງທີ່ໄປຮອດຈຸດປະສົງ ກຳ ລັງຫລຸດ ໜ້ອຍ ລົງ (ເພາະວ່າມັນຫລືວັດຖຸອື່ນໆ ກຳ ລັງກີດຂວາງມັນເລັກ ໜ້ອຍ). ຄຸນລັກສະນະນີ້ເອີ້ນວ່າ: ການຄັດເລືອກຮອບດ້ານ ແລະມີຫລາຍຮຸ່ນຂອງສິ່ງນີ້. ບາງສ່ວນຂອງພວກມັນໄດ້ຖືກພັດທະນາເປັນພິເສດໂດຍຜູ້ຂາຍຮາດແວ, ເຊັ່ນ: AMD HDAO (ຄໍານິຍາມສູງ occlusion ແວດລ້ອມ) ແລະ Nvidia HBAO + (ຄວາມແອອັດສະພາບແວດລ້ອມໃນຂອບເຂດ).

ຮູບແບບໃດກໍ່ໄດ້ຖືກ ນຳ ໃຊ້, ສະຖານທີ່ດັ່ງກ່າວຈະຖືກ ນຳ ໃຊ້ຫຼັງຈາກທີ່ມັນຖືກສະແດງເຕັມຮູບແບບ, ດັ່ງນັ້ນ retouch ແລະ ສຳ ລັບແຕ່ລະ pixels ລວງລະຫັດຕົວຈິງຈະຄິດໄລ່ວ່າ pixel ເບິ່ງເຫັນໄດ້ແນວໃດ (ອ່ານເພີ່ມເຕີມກ່ຽວກັບວິທີການນີ້) ທີ່ນີ້ ແລະຢູ່ທີ່ນີ້) ໂດຍການປຽບທຽບມູນຄ່າຄວາມເລິກຂອງ pixels ລວງກັບ pixels ອ້ອມຂ້າງທີ່ສອດຄ້ອງກັນໃນ buffer ຄວາມເລິກ (ອີກເທື່ອ ໜຶ່ງ ຖືກເກັບໄວ້ເປັນໂຄງສ້າງ).

ການເກັບຕົວຢ່າງຂອງ buffer ຄວາມເລິກແລະຫຼັງຈາກນັ້ນການຄິດໄລ່ສີພິກະເຊນສຸດທ້າຍມີບົດບາດ ສຳ ຄັນໃນຄຸນນະພາບຂອງສິ່ງແວດລ້ອມທີ່ເກີດຂື້ນ; ແລະທຸກໆສະພາບແວດລ້ອມທີ່ແປກປະຫຼາດເຊັ່ນ: ການວາງແຜນເງົາ, ຮຽກຮ້ອງໃຫ້ນັກຂຽນໂປແກຼມປັບປ່ຽນແລະປັບລະຫັດຂອງພວກເຂົາໃຫ້ ເໝາະ ສົມກັບສະຖານະການເພື່ອຮັບປະກັນຜົນກະທົບທີ່ເຮັດວຽກຢ່າງຖືກຕ້ອງ.

ເຖິງຢ່າງໃດກໍ່ຕາມ, ມັນຖືກປະຕິບັດຢ່າງຖືກຕ້ອງແລະຜົນກະທົບຂອງສາຍຕາແມ່ນເລິກເຊິ່ງ. ໃນຮູບຂ້າງເທິງ, ໃຫ້ເບິ່ງທີ່ອ້ອມແຂນ, ໝາກ ນັດແລະ ໝາກ ກ້ວຍຂອງຜູ້ຊາຍ, ແລະຫຍ້າອ້ອມຮອບແລະສີຂຽວ. ການປ່ຽນສີສີພິເສດທີ່ຜະລິດຈາກການໃຊ້ HBAO + ແມ່ນຂ້ອນຂ້າງ ໜ້ອຍ, ແຕ່ດຽວນີ້ວັດຖຸທັງ ໝົດ ຈະເຫັນໄດ້ ພື້ນຖານ (ຢູ່ເບື້ອງຊ້າຍ, ຊາຍຄົນນັ້ນປະກົດວ່າເລື່ອນຢູ່ ໜ້າ ດິນ).

ເລືອກເອົາເກມລ້າສຸດທີ່ ນຳ ສະ ເໜີ ໃນບົດຄວາມນີ້, ແລະລາຍຊື່ເຕັກນິກການເຮັດວຽກເພື່ອຈັດການກັບແສງແລະເງົາຈະມີຄວາມຍາວເທົ່າກັບຄຸນລັກສະນະນີ້. ແລະໃນຂະນະທີ່ບໍ່ແມ່ນຫົວຂໍ້ 3D ໃໝ່ ທຸກຢ່າງຈະມີທັງ ໝົດ ນີ້, ຄວາມຈິງທີ່ວ່າເຄື່ອງຈັກເກມທົ່ວໄປເຊັ່ນ Unreal ນຳ ສະ ເໜີ ພວກມັນເປັນຕົວເລືອກເພື່ອໃຫ້ສາມາດແລະໃຫ້ລະຫັດ ສຳ ລັບການປ່ອຍຊຸດເຄື່ອງມືຈາກຄູ່ຮ່ວມງານຂອງ Nvidia ບໍ່ໄດ້ຖືກຈັດປະເພດເປັນວິທີການທີ່ມີຄວາມຊ່ຽວຊານສູງ, ມີຮູບຊົງ - ຫຼັງຈາກເກັບຮັກສາໂປແກຼມທີ່ດີທີ່ສຸດ ເກືອບທຸກຄົນສາມາດໃຊ້ເຕັກໂນໂລຢີ.

ພວກເຮົາບໍ່ສາມາດ ສຳ ເລັດບົດຄວາມກ່ຽວກັບການເຮັດໃຫ້ມີແສງແລະການຮົ່ມໃນການສະແດງຜົນແບບ 3D ໂດຍບໍ່ຕ້ອງເວົ້າກ່ຽວກັບການຕິດຕາມດ້ວຍແສງ. ພວກ​ເຮົາ​ມີ ໄດ້ກວມເອົາຂັ້ນຕອນດັ່ງກ່າວແລ້ວ ໃນຊຸດນີ້, ການຈ້າງງານເຕັກໂນໂລຢີໃນປະຈຸບັນ ຮຽກຮ້ອງໃຫ້ພວກເຮົາຍອມຮັບອັດຕາພາຕໍ່າແລະການດຸ່ນດ່ຽງທະນາຄານທີ່ຫວ່າງເປົ່າ.

ເຖິງຢ່າງໃດກໍ່ຕາມ, ເຄື່ອງຫຼີ້ນລຸ້ນຕໍ່ໆໄປຂອງ Microsoft ແລະ Sony ກໍ່ສະ ໜັບ ສະ ໜູນ ສິ່ງນີ້, ນັ້ນ ໝາຍ ຄວາມວ່າການ ນຳ ໃຊ້ຂອງມັນຈະກາຍເປັນເຄື່ອງມືມາດຕະຖານອື່ນໂດຍນັກພັດທະນາທົ່ວໂລກ ກຳ ລັງຊອກຫາເພື່ອຍົກສູງຄຸນນະພາບສາຍຕາຂອງເກມຂອງພວກເຂົາໃຫ້ເປັນມາດຕະຖານຮູບເງົາ. ກວດເບິ່ງສິ່ງທີ່ Remedy ໄດ້ມຸ້ງໄປໃນ ຕຳ ແໜ່ງ ຫຼ້າສຸດຂອງພວກເຂົາ. ຄວບຄຸມ:

ພວກເຮົາໄດ້ມາໄກຈາກເງົາ faux ໃນໂຄງສ້າງແລະເຮັດໃຫ້ມີແສງອາກາດລ້ອມຮອບພື້ນຖານ!

ມັນຍັງມີອີກຫລາຍຢ່າງທີ່ຕ້ອງປົກຄຸມ

ໃນບົດຂຽນນີ້, ພວກເຮົາໄດ້ພະຍາຍາມຄອບຄຸມບາງພື້ນຖານຂອງວິຊາຄະນິດສາດແລະເຕັກນິກທີ່ໃຊ້ໃນເກມ 3D ເພື່ອເຮັດໃຫ້ພວກເຂົາມີລັກສະນະເປັນຈິງເທົ່າທີ່ເປັນໄປໄດ້, ເບິ່ງເຕັກໂນໂລຢີທີ່ຢູ່ເບື້ອງຫຼັງການສ້າງແບບ ຈຳ ລອງວິທີການທີ່ແສງສະຫວ່າງພົວພັນກັບວັດຖຸແລະວັດສະດຸ. ແລະນັ້ນແມ່ນພຽງແຕ່ລົດຊາດເລັກໆນ້ອຍໆຂອງມັນທັງ ໝົດ.

ຍົກຕົວຢ່າງ, ພວກເຮົາຂ້າມສິ່ງຕ່າງໆເຊັ່ນ: ການເຮັດໃຫ້ມີແສງປະຫຍັດພະລັງງານ, ດອກໄຟເລນ, ດອກໄມ້, ການສະແດງຜົນທີ່ມີຄວາມເຄື່ອນໄຫວສູງ, ການສົ່ງຜ່ານແສງ, ການ ໝູນ ວຽນ, ການ ໝອກ, ການ ໝໍ້ ໜຶ່ ງິ, ການຫຍໍ້ທໍ້ໃນຮູບ, ການສ້າງແຜນທີ່ຂອງ photon, ການຮັກສາ, radiology. ໃນສັ້ນ, ເຊັ່ນດຽວກັນກັບເນື້ອໃນຂອງຄຸນລັກສະນະນີ້, ຕ້ອງມີບົດຂຽນຕື່ມອີກ 3 ຫຼື 4 ຫົວຂໍ້ຕໍ່ ໜ້າ.

ພວກເຮົາແນ່ໃຈວ່າທ່ານມີບາງເລື່ອງທີ່ດີທີ່ຈະບອກກ່ຽວກັບເກມທີ່ເຮັດໃຫ້ທ່ານແປກໃຈກັບກົນລະຍຸດສາຍຕາຂອງພວກເຂົາ, ດັ່ງນັ້ນໃນຂະນະທີ່ພວກເຂົາລະເບີດຜ່ານ Call of Mario: Deathduty Battleyard ຫຼືຄ້າຍຄືກັນ, ໃຊ້ເວລາ ໜ້ອຍ ໜຶ່ງ ເພື່ອເບິ່ງພວກເຂົາກາຟິກແລະປະຫລາດໃຈວ່າມີຫຍັງເກີດຂື້ນຢູ່ເບື້ອງຫຼັງເພື່ອເຮັດໃຫ້ຮູບພາບເຫລົ່ານີ້. ແມ່ນແລ້ວ, ມັນບໍ່ມີຫຍັງນອກ ເໜືອ ຈາກເລກແລະໄຟຟ້າ, ແຕ່ຜົນໄດ້ຮັບແມ່ນ smorgasbord optical. ມີ ຄຳ ຖາມໃດໆ: ຍິງພວກເຮົາໄປທາງດຽວກັນ! ຈົນກ່ວາຕໍ່ໄປ.

ຍັງອ່ານ
ທາງລັດໃນການຊື້:
  • GeForce RTX 2080 Super clear Amazon
  • GeForce RTX 2070 Super clear Amazon
  • GeForce RTX 2080 Ti ເປີດແລ້ວ Amazon
  • Radeon RX 5700 XT ເປີດ Amazon
  • AMD Ryzen 9 3900X ເປີດ Amazon
  • AMD Ryzen 5 3600 ເປີດ Amazon