< /p>
Все входы - это нормализованные векторы, а Проекция лучей работает просто отлично, если смотреть вдоль оси x или y, но, глядя вдоль оси z, вид полностью искажается, я нахожусь в конце этого, полная кодовая база находится в
https: // github .com/fuushi/trumbone-renderer
При просмотре z+ все 3 цветных кубика должны быть видны, но проекция полностью искажает представление, я считаю, что мои матрицы вращения могут быть неправильными, но я не уверен
< /p> Все входы - это нормализованные векторы, а Проекция лучей работает просто отлично, если смотреть вдоль оси x или y, но, глядя вдоль оси z, вид полностью искажается, я нахожусь в конце этого, полная кодовая база находится в https: // github .com/fuushi/trumbone-renderer [code]// Rodrigues' rotation formula: Rotates `v` around axis `u` by `theta` radians std::vector rotate_vector_u(const std::vector& v, double theta) { // Compute rotation axis (perpendicular to the vector and z-axis) std::vector z_axis = {0.0, 0.0, 1.0}; std::vector rotation_axis = vector_cross_product(v, z_axis);
// Handle edge case where vector is perfectly aligned with z (avoid zero vector) if (rotation_axis[0] == 0 && rotation_axis[1] == 0 && rotation_axis[2] == 0) { rotation_axis = {1.0, 0.0, 0.0}; // Z perpendicular axis }
// Normalize the rotation axis rotation_axis = normalize_vector(rotation_axis);
// Apply rotation using Rodrigues' formula std::vector rotated_vector = rotate_vector_wrapper( input_vector, theta_z_rad, theta_up_rad );
// Normalize the final vector return normalize_vector(rotated_vector); }; [/code] При просмотре z+ все 3 цветных кубика должны быть видны, но проекция полностью искажает представление, я считаю, что мои матрицы вращения могут быть неправильными, но я не уверен