як дадаць выяўленне траплення ў кулі
адказ 1:
Па-першае, я пачынаю з таго, што OpenGL быў прадметам, якім я займаўся толькі дзеля цікавасці і не маю вялікіх ведаў па інфарматыцы ў цэлым. Але просты спосаб, які я бачу для гэтага, - гэта гульнявы свет, у асноўным гэта 2D-экран. Уявіце, мэта, якую вы хочаце страляць, зроблена з самалётаў. Цяпер можна атрымаць 3D-кропку з 2D (у OpenGL ёсць палажэнні). Усё, што нам трэба, гэта прыцэл стрэльбы, які паказвае ў гульні. З каардынат x, y атрымаеце X, Y, Z. Цяпер з гэтым праверце, ці падае X, Y, Z у плоскасць мэты (у дадзеным выпадку прамавугольнік ці трохвугольнік).
адказ 2:
Лепшы спосаб - гэта сутыкненне. Такім чынам вы атрымаеце ўсю інфармацыю, неабходную для апрацоўкі стрэлу ад кулі: кропка сутыкнення, нармальны вектар у кропцы траплення (можа выкарыстоўвацца для розных рэчаў, напрыклад, выпраменьванне часціц у належным выглядзе), шматкутнік, які вы патрапілі, сутнасць, у якую трапілі. Ліццё прамяня сутыкнення павінна працаваць на вашым аб'екце касмічнага раздзела, каб запытаць хуткі спіс аб'ектаў, якія вы тэстуеце на сутыкненне з вашым прамянём. Улічыце, калі будуеце метады выяўлення сутыкненняў паміж сферай, скрынкай, цыліндрам і іншымі прымітывамі, каб таксама дадаць прамень супраць прымітыўнага калайдэра. Каб пабудаваць цэлую сістэму, трэба папрацаваць, але вынікі прыносяць карысць.
адказ 3:
Raycasting. Вы праецыруеце прамень са ствала пісталета і бачыце, ці не сутыкаецца прамень з сеткай іншага персанажа. У многіх бібліятэках 3D ёсць падтрымка прамянёвага прамяня.
Вось адзін у якасці прыкладу.