код функции update довольно большой когда я его в chatgpt загнал, могу в личку скинуть, но суть я выше объяснил, что доворот в апдейте происходит
Читать полностью…Я пытался доворот реализовать так
if (isTurning) {
// Определяем направление доворота в зависимости от направления движения
const currentRotation = new Euler().setFromQuaternion(camera.quaternion);
let targetRotation;
if (direction > 0) {
// Движение вправо
targetRotation = new Euler(
currentRotation.x,
currentRotation.y - MathUtils.degToRad(75),
currentRotation.z,
);
} else {
// Движение влево
targetRotation = new Euler(
currentRotation.x,
currentRotation.y + MathUtils.degToRad(75),
currentRotation.z,
);
}
const targetQuaternion = new Quaternion().setFromEuler(targetRotation);
camera.quaternion.slerp(targetQuaternion, dt);
}
camera.lookAt(lookPos);
Читать полностью…
const dX = x - mX.current;
mX.current = x;
if (e.type === 'touchstart') {
mX.current = x; // Обновляем начальное значение mX при начале касания
}
if (e.type === 'touchmove') {
lookPos.x -= dX * 0.0025;
lookPos.x = MathUtils.clamp(lookPos.x, minClamp, maxClamp);
let pX = 2 * (x / window.innerWidth - 0.5);
let pY = 2 * (y / window.innerHeight - 0.5);
camOffsetPos.x = -pX * 0.6;
camOffsetPos.y = pY * 0.4;
}
if (e.type === 'touchend') {
lookPos.x = MathUtils.clamp(lookPos.x + dX * 0.001, minClamp, maxClamp);
}
}
Может вы сталкивались с такой шуткой как на этом сайте https://tour.1863.fr
Типо в конце смещения камера делает доворот
Я недавно начал изучать плотно three js, и столкнулся с проблемой в движении камеры
Читать полностью…кто-то знает пример 2д игр, где topdown персонажи были помещены в игру просто с видом сверху (где вид на сцену идёт сверху)
Читать полностью…vec4 nightSkyColor = vec4(0.0);
vec4 desaturated = generic_desaturate(color.rgb, 1.0);
desaturated *= 35.0;
desaturated = pow(desaturated, vec4(0.1));
vec4 saturated = clamp(desaturated, 0.0,1.0);
saturated = 1.0 - saturated;
nightSkyColor = texture;
nightSkyColor*=saturated;
color+=nightSkyColor;
я зашел в код сайта, поискал где инициализируется PerspectiveCamera
нашел, в итоге что я вижу:
сдвигание курсора просто меняет в стейте вектор this.target
и вся суть происходит в функции update у класса камеры, где на каждый тик она чуть чуть доворачивается до target и ее позиция сдвигается на дельту того как перетащили
значит никто кроме mr doob, а если серьезно, то лучше вопрос задавать конкертный, так как желания отвечать "я шарю" мало у кого есть
Читать полностью…в трёшке есть GPU picking
ну, как "есть", есть пример - смотришь в него, делаешь так же )
https://threejs.org/examples/?q=gpu#webgl_interactive_cubes_gpu
Пацаны, а как вообще работает детект клика по модели?
Если у меня есть gltf моделька лоуполи города, могу я средствами работы с 3D в вебе детектить клики по разным конкретным частям этой модели?
Короче ситуация такая что мне пришлось часа 3 убить чтобы получить нужный результат
Читать полностью…