diff --git a/metadrive/component/block/base_block.py b/metadrive/component/block/base_block.py index 73fc36c5f..d411bc917 100644 --- a/metadrive/component/block/base_block.py +++ b/metadrive/component/block/base_block.py @@ -79,7 +79,7 @@ def __init__( self.side_texture.setWrapU(Texture.WM_repeat) self.side_texture.setWrapV(Texture.WM_repeat) self.side_texture.setMinfilter(SamplerState.FT_linear_mipmap_linear) - self.side_texture.setAnisotropicDegree(8) + self.side_texture.setAnisotropicDegree(1) self.side_normal = self.loader.loadTexture(AssetLoader.file_path("textures", "sidewalk", "normal.png")) # self.side_normal.set_format(Texture.F_srgb) self.side_normal.setWrapU(Texture.WM_repeat) diff --git a/metadrive/engine/core/engine_core.py b/metadrive/engine/core/engine_core.py index cdd529939..e4978e9c5 100644 --- a/metadrive/engine/core/engine_core.py +++ b/metadrive/engine/core/engine_core.py @@ -83,8 +83,6 @@ class EngineCore(ShowBase.ShowBase): DEBUG = False global_config = None # global config can exist before engine initialization loadPrcFileData("", "window-title {}".format(EDITION)) - loadPrcFileData("", "framebuffer-multisample 1") - loadPrcFileData("", "multisamples 8") loadPrcFileData("", "bullet-filter-algorithm groups-mask") loadPrcFileData("", "audio-library-name null") loadPrcFileData("", "model-cache-compressed-textures 1") @@ -98,14 +96,19 @@ class EngineCore(ShowBase.ShowBase): # loadPrcFileData("", "allow-incomplete-render #t") # loadPrcFileData("", "# even-animation #t") - # loadPrcFileData("", " framebuffer-srgb truein") # loadPrcFileData("", "geom-cache-size 50000") # v-sync, it seems useless # loadPrcFileData("", "sync-video 1") - # for debug use - # loadPrcFileData("", "gl-version 3 2") + if is_mac(): + # latest macOS supported openGL version + loadPrcFileData("", "gl-version 4 1") + loadPrcFileData("", " framebuffer-srgb truein") + else: + # anti-aliasing does not work on macOS + loadPrcFileData("", "framebuffer-multisample 1") + loadPrcFileData("", "multisamples 8") def __init__(self, global_config): # if EngineCore.global_config is not None: @@ -160,9 +163,6 @@ def __init__(self, global_config): # Disable useless camera capturing in none mode self.global_config["show_interface"] = False - if is_mac() and (self.mode == RENDER_MODE_OFFSCREEN): # Mac don't support offscreen rendering - self.mode = RENDER_MODE_ONSCREEN - loadPrcFileData("", "win-size {} {}".format(*self.global_config["window_size"])) if self.use_render_pipeline: @@ -294,12 +294,13 @@ def __init__(self, global_config): if self.global_config["daytime"] is not None: self.render_pipeline.daytime_mgr.time = self.global_config["daytime"] else: - self.pbrpipe = init( - msaa_samples=16, - use_hardware_skinning=True, - # use_normal_maps=True, - use_330=False - ) + if not is_mac(): + self.pbrpipe = init( + msaa_samples=16, + use_hardware_skinning=True, + # use_normal_maps=True, + use_330=False + ) self.sky_box = SkyBox(not self.global_config["show_skybox"]) self.sky_box.attach_to_world(self.render, self.physics_world) diff --git a/metadrive/engine/core/sky_box.py b/metadrive/engine/core/sky_box.py index 99b0d970f..6cffde35c 100644 --- a/metadrive/engine/core/sky_box.py +++ b/metadrive/engine/core/sky_box.py @@ -30,7 +30,7 @@ def __init__(self, pure_background: bool = False): skybox_texture.set_magfilter(SamplerState.FT_linear) skybox_texture.set_wrap_u(SamplerState.WM_repeat) skybox_texture.set_wrap_v(SamplerState.WM_mirror) - skybox_texture.set_anisotropic_degree(16) + skybox_texture.set_anisotropic_degree(1) skybox.set_texture(skybox_texture) gles = ConfigVariableString("load-display").getValue() @@ -40,12 +40,8 @@ def __init__(self, pure_background: bool = False): AssetLoader.file_path("../shaders", "skybox_gles.frag.glsl") ) else: - if is_mac(): - vert_file = "skybox_mac.vert.glsl" - frag_file = "skybox_mac.frag.glsl" - else: - vert_file = "skybox.vert.glsl" - frag_file = "skybox.frag.glsl" + vert_file = "skybox.vert.glsl" + frag_file = "skybox.frag.glsl" skybox_shader = Shader.load( Shader.SL_GLSL, AssetLoader.file_path("../shaders", vert_file), AssetLoader.file_path("../shaders", frag_file) diff --git a/metadrive/engine/core/terrain.py b/metadrive/engine/core/terrain.py index 9f1c67658..17c3210bb 100644 --- a/metadrive/engine/core/terrain.py +++ b/metadrive/engine/core/terrain.py @@ -442,7 +442,7 @@ def _load_mesh_terrain_textures(self, engine, anisotropic_degree=16, filter_type tex.set_wrap_v(v_wrap) tex.setMinfilter(filter_type) tex.setMagfilter(filter_type) - tex.setAnisotropicDegree(anisotropic_degree) + tex.setAnisotropicDegree(1) # rock self.rock_tex = self.loader.loadTexture( @@ -464,7 +464,7 @@ def _load_mesh_terrain_textures(self, engine, anisotropic_degree=16, filter_type tex.set_wrap_v(v_wrap) tex.setMinfilter(filter_type) tex.setMagfilter(filter_type) - tex.setAnisotropicDegree(anisotropic_degree) + tex.setAnisotropicDegree(1) # # sidewalk # self.side_tex = self.loader.loadTexture(AssetLoader.file_path("textures", "sidewalk", "color.png")) @@ -496,7 +496,7 @@ def _load_mesh_terrain_textures(self, engine, anisotropic_degree=16, filter_type tex.set_wrap_v(v_wrap) tex.setMinfilter(filter_type) tex.setMagfilter(filter_type) - tex.setAnisotropicDegree(anisotropic_degree) + tex.setAnisotropicDegree(1) # self.road_texture_displacement = self.loader.loadTexture(AssetLoader.file_path("textures", "sci", "normal.jpg")) # self.road_texture.setMinfilter(minfilter) # self.road_texture.setAnisotropicDegree(anisotropic_degree) diff --git a/metadrive/shaders/terrain.frag.glsl b/metadrive/shaders/terrain.frag.glsl index c7189705c..4f0d03f4c 100644 --- a/metadrive/shaders/terrain.frag.glsl +++ b/metadrive/shaders/terrain.frag.glsl @@ -201,7 +201,7 @@ void main() { float radius = 0.001; // Sample radius for(int x = -1; x <= 1; x++) { for(int y = -1; y <= 1; y++) { - float depth_sample = texture2D(PSSMShadowAtlas, projected_coord.xy + vec2(x, y) * radius).r; + float depth_sample = texture(PSSMShadowAtlas, projected_coord.xy + vec2(x, y) * radius).r; shadow_factor += step(ref_depth, depth_sample); } } @@ -233,4 +233,4 @@ void main() { // shading = vec3(0, 1, 1); // } color = vec4(shading, 1.0); -} \ No newline at end of file +} diff --git a/setup.py b/setup.py index ffe615b36..749190293 100644 --- a/setup.py +++ b/setup.py @@ -51,7 +51,7 @@ def is_win(): "panda3d-gltf==0.13", # 0.14 will bring some problems "pillow", "pytest", - "opencv-python", + "opencv-python-headless", "lxml", "scipy", "psutil",