Traceback (most recent call last):
File "c:\Users\test\Documents\dumb_project\python_shaders\OpenGL\test.py", line 62, in
game = GraphicEngine(win_size=screensize)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\test\Documents\dumb_project\python_shaders\OpenGL\test.py", line 27, in __init__
self.scene = Triangle(self)
^^^^^^^^^^^^^^
File "c:\Users\test\Documents\dumb_project\python_shaders\OpenGL\model.py", line 8, in __init__
self.shader_program = self.get_shader_program('default')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\test\Documents\dumb_project\python_shaders\OpenGL\model.py", line 36, in get_shader_program
with open(f'shaders/{shader_name}.vert') as file:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'shaders/default.vert'
Итак, он говорит, что не может найти папку, и я понятия не имею, почему, поэтому вот мой вопрос: D
Знаете ли вы, почему появляется эта ошибка?
спасибо
и хорошего дня!
Итак, я начинаю изучать шейдеры с помощью Python и openGL и следую этому руководству: [youtube]eJDIsFJN4OQ[/youtube] и у меня есть эти коды: [list] [*]test.py [/list] [code]import pygame as pg import moderngl as mgl import sys import ctypes from model import Triangle
import time, math #classes class GraphicEngine: def __init__(self, win_size=(1000,1000)): #init pygame modules pg.init() #window size manager self.WIN_SIZE = win_size #opengl attribute with pygame pg.display.gl_set_attribute(pg.GL_CONTEXT_MAJOR_VERSION, 3) pg.display.gl_set_attribute(pg.GL_CONTEXT_MINOR_VERSION, 3) pg.display.gl_set_attribute(pg.GL_CONTEXT_PROFILE_MASK, pg.GL_CONTEXT_PROFILE_CORE) #opengl context creation pg.display.set_mode(self.WIN_SIZE, flags=pg.OPENGL | pg.DOUBLEBUF) #detect current opengl for usage self.ctx = mgl.create_context() #create an object to help track time self.clock = pg.time.Clock() #scene self.scene = Triangle(self)
def check_events(self): for event in pg.event.get(): if event.type == pg.QUIT or (event.type == pg.KEYDOWN and event.key == pg.K_ESCAPE): self.scene.destroy() pg.quit() sys.exit()
def render(self): #busy with rendering everything on screen #clear framebuffer self.ctx.clear(color=(0.01,0.9,0.7)) #render scene self.scene.render() #swap buffers pg.display.flip()
def render_screen(self):
return (r,g,b)
def run(self): #runs every frame and control the whole thinggy : => manager while True: self.check_events() self.render() self.clock.tick(120)
def get_vbo(self): #instantiate the tringle in a vertex buffer in GPU vertex_data = self.get_vertex_data() vbo = self.ctx.buffer(vertex_data) return vbo
def get_shader_program(self, shader_name):
with open(f'shaders/{shader_name}.vert') as file: vertex_shader = file.read() with open(f'shaders/{shader_name}.frag') as file: fragment_shader = file.read()
program = self.ctx.program(vertex_shader=vertex_shader, fragment_shader=fragment_shader) return program [/code] [list] [*]default.vert внутри файла «шейдеров» [/list] [code] layout (location = 0) in vec3 in_position;
void main(){ vec3 color = vec3(1,0,0) fragColor = vec4(color, 1.0) } [/code] Изображение, показывающее управление репозиторием и ошибку: [code]Traceback (most recent call last): File "c:\Users\test\Documents\dumb_project\python_shaders\OpenGL\test.py", line 62, in game = GraphicEngine(win_size=screensize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "c:\Users\test\Documents\dumb_project\python_shaders\OpenGL\test.py", line 27, in __init__ self.scene = Triangle(self) ^^^^^^^^^^^^^^ File "c:\Users\test\Documents\dumb_project\python_shaders\OpenGL\model.py", line 8, in __init__ self.shader_program = self.get_shader_program('default') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "c:\Users\test\Documents\dumb_project\python_shaders\OpenGL\model.py", line 36, in get_shader_program with open(f'shaders/{shader_name}.vert') as file: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [Errno 2] No such file or directory: 'shaders/default.vert' [/code] Итак, он говорит, что не может найти папку, и я понятия не имею, почему, поэтому вот мой вопрос: D Знаете ли вы, почему появляется эта ошибка? спасибо и хорошего дня!