як дадаць выяўленне траплення ў кулі


адказ 1:

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


адказ 2:

Лепшы спосаб - гэта сутыкненне. Такім чынам вы атрымаеце ўсю інфармацыю, неабходную для апрацоўкі стрэлу ад кулі: кропка сутыкнення, нармальны вектар у кропцы траплення (можа выкарыстоўвацца для розных рэчаў, напрыклад, выпраменьванне часціц у належным выглядзе), шматкутнік, які вы патрапілі, сутнасць, у якую трапілі. Ліццё прамяня сутыкнення павінна працаваць на вашым аб'екце касмічнага раздзела, каб запытаць хуткі спіс аб'ектаў, якія вы тэстуеце на сутыкненне з вашым прамянём. Улічыце, калі будуеце метады выяўлення сутыкненняў паміж сферай, скрынкай, цыліндрам і іншымі прымітывамі, каб таксама дадаць прамень супраць прымітыўнага калайдэра. Каб пабудаваць цэлую сістэму, трэба папрацаваць, але вынікі прыносяць карысць.


адказ 3:

Raycasting. Вы праецыруеце прамень са ствала пісталета і бачыце, ці не сутыкаецца прамень з сеткай іншага персанажа. У многіх бібліятэках 3D ёсць падтрымка прамянёвага прамяня.

Вось адзін у якасці прыкладу.