|
@@ -28,6 +28,12 @@ const generatePreset = (gl: WebGL2RenderingContext) => {
|
|
|
gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
|
|
|
gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
|
|
|
gl.generateMipmap(gl.TEXTURE_CUBE_MAP);
|
|
|
+ // 设置各向异性过滤参数
|
|
|
+ const ext = gl.getExtension('EXT_texture_filter_anisotropic');
|
|
|
+ if (ext) {
|
|
|
+ const maxAnisotropy = gl.getParameter(ext.MAX_TEXTURE_MAX_ANISOTROPY_EXT);
|
|
|
+ gl.texParameteri(gl.TEXTURE_CUBE_MAP, ext.TEXTURE_MAX_ANISOTROPY_EXT, maxAnisotropy); // 设置各向异性系数为6
|
|
|
+ }
|
|
|
gl.bindTexture(gl.TEXTURE_CUBE_MAP, null);
|
|
|
};
|
|
|
|
|
@@ -36,6 +42,12 @@ const generatePreset = (gl: WebGL2RenderingContext) => {
|
|
|
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);
|
|
|
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
|
|
|
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
|
|
|
+ // 设置各向异性过滤参数
|
|
|
+ const ext = gl.getExtension('EXT_texture_filter_anisotropic');
|
|
|
+ if (ext) {
|
|
|
+ const maxAnisotropy = gl.getParameter(ext.MAX_TEXTURE_MAX_ANISOTROPY_EXT);
|
|
|
+ gl.texParameteri(gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT, maxAnisotropy); // 设置各向异性系数为6
|
|
|
+ }
|
|
|
gl.bindTexture(gl.TEXTURE_2D, null);
|
|
|
};
|
|
|
|
|
@@ -81,7 +93,7 @@ const getDrawVaring = (gl: WebGL2RenderingContext) => {
|
|
|
|
|
|
export const init = (canvas: HTMLCanvasElement, initYaw: number) => {
|
|
|
let activeTex: "skyCubeTex1" | "skyCubeTex" = "skyCubeTex1";
|
|
|
- const gl = canvas.getContext("webgl2", { preserveDrawingBuffer: true })!;
|
|
|
+ const gl = canvas.getContext("webgl2", { preserveDrawingBuffer: true, antialias: true })!;
|
|
|
const program = createProgram(gl, envVertSource, envFragSource);
|
|
|
const program1 = createProgram(gl, envVertSource, envCubeFragSource);
|
|
|
|