Я реализую скайбокс в своем 3D-проекте на Python, используя шесть отдельных файлов текстур для каждой грани куба. Файлы текстур названы в соответствии с их ориентацией: nx: Negative X (левая грань) пикселей: положительный X (правая сторона) ny: отрицательный Y (нижняя сторона)
< strong>py: положительная Y (верхняя грань) nz: отрицательная Z (задняя сторона) pz: положительная Z (лицевая сторона)
Я применил текстуры к соответствующим граням куба, но края между гранями четко видны, а общее выравнивание выглядит неправильным.
< /p> Я подозреваю следующее:
Некоторые текстуры могут быть перевернуты, повернуты или перевернуты.
УФ-преобразование или ориентация моего лица куб может быть неверным.
Настройки фильтрации текстур или упаковки могут вызывать проблемы. Что я пробовал:
Проверено, что каждая текстура сопоставлена с правильным лицом в соответствии с соглашением об именовании.
Вручную проверил текстуры на предмет выравнивания, но не смог определить, правильно ли они ориентированы. Наблюдения:
Швы видны и плохо сочетаются между гранями.
Текстуры не перетекают плавно по соседним краям. Мои вопросы:
Как определить, связана ли проблема с неправильной ориентацией текстуры (например, переворотом или вращением)?
Существуют ли методы отладки и проверки правильного выравнивания текстуры скайбокса?
Любые советы или советы по устранению неполадок будут полезны. будем очень признательны! Мой файл кода:
Я реализую скайбокс в своем 3D-проекте на Python, используя шесть отдельных файлов текстур для каждой грани куба. Файлы текстур названы в соответствии с их ориентацией: [b]nx[/b]: Negative X (левая грань) [b] пикселей[/b]: положительный X (правая сторона) [b]ny[/b]: отрицательный Y (нижняя сторона) < strong>py: положительная Y (верхняя грань) [b]nz[/b]: отрицательная Z (задняя сторона) [b]pz[/b]: положительная Z (лицевая сторона) Я применил текстуры к соответствующим граням куба, но края между гранями четко видны, а общее выравнивание выглядит неправильным. [img]https://i.sstatic.net/vsegnZo7.png[/img]
[img]https://i.sstatic.net/InFF34Wk.png[/img] < /p> [b]Я подозреваю следующее:[/b] Некоторые текстуры могут быть перевернуты, повернуты или перевернуты. УФ-преобразование или ориентация моего лица куб может быть неверным. Настройки фильтрации текстур или упаковки могут вызывать проблемы. [b]Что я пробовал:[/b] Проверено, что каждая текстура сопоставлена с правильным лицом в соответствии с соглашением об именовании. Вручную проверил текстуры на предмет выравнивания, но не смог определить, правильно ли они ориентированы. [b]Наблюдения:[/b] Швы видны и плохо сочетаются между гранями. Текстуры не перетекают плавно по соседним краям. [b]Мои вопросы: [/b] Как определить, связана ли проблема с неправильной ориентацией текстуры (например, переворотом или вращением)? Существуют ли методы отладки и проверки правильного выравнивания текстуры скайбокса? Любые советы или советы по устранению неполадок будут полезны. будем очень признательны! [b]Мой файл кода:[/b] [code]import pygame from pygame.locals import * from OpenGL.GL import * from OpenGL.GLU import * from math import pi, sin, cos, sqrt
# Load textures def load_texture(file_path, use_alpha=False): try: # Use convert_alpha() for images with transparency if use_alpha: texture_surface = pygame.image.load(file_path).convert_alpha() texture_data = pygame.image.tostring(texture_surface, "RGBA", True) else: texture_surface = pygame.image.load(file_path).convert() texture_data = pygame.image.tostring(texture_surface, "RGB", True) width, height = texture_surface.get_size()
for stack in range(stacks): for slice_ in range(slices): first = stack * (slices + 1) + slice_ second = first + slices + 1 indices.extend([first, second, first + 1, second, second + 1, first + 1])
for face_name, vertices in faces: glBindTexture(GL_TEXTURE_2D, skybox_textures[face_name]) glBegin(GL_QUADS) for i, (x, y, z) in enumerate(vertices): s = i % 2 t = (i // 2) % 2 glTexCoord2f(s, t) glVertex3f(x, y, z) glEnd()
if current_texture == day_texture: glColor4f(1.0, 1.0, 1.0, 0.9) else: glColor4f(1.0, 1.0, 1.0, 0.2) # Set transparency
# Enable and set pointers for clouds glEnableClientState(GL_VERTEX_ARRAY) glEnableClientState(GL_NORMAL_ARRAY) glEnableClientState(GL_TEXTURE_COORD_ARRAY)
clouds_vertex_data = (GLfloat * len(clouds_vertices))(*clouds_vertices) clouds_normal_data = (GLfloat * len(clouds_normals))(*clouds_normals) clouds_texcoord_data = (GLfloat * len(clouds_tex_coords))(*clouds_tex_coords) clouds_index_data = (GLuint * len(indices))(*indices) # Use the same indices
Я реализую скайбокс в своем 3D-проекте на Python, используя шесть отдельных файлов текстур для каждой грани куба. Файлы текстур названы в соответствии с их ориентацией:
nx : Negative X (левая грань)
пикселей : положительный X (правая сторона)
ny...
Чтобы быть более конкретным, мне интересно, как одновременно назначить тензор по срезу и по маске в разных измерениях в PyTorch.
Вот небольшой пример того, что я хочу сделать:
С тензорами и масками ниже:
x = torch.zeros(2, 3, 4, 6)
mask =...
Чтобы быть более конкретным, мне интересно, как одновременно назначить тензор по срезу и по маске в разных измерениях в PyTorch.
Вот небольшой пример того, что я хочу сделать:
С тензорами и масками ниже:
x = torch.zeros(2, 3, 4, 6)
mask =...