Skip to content

Conversation

finscn
Copy link
Contributor

@finscn finscn commented Aug 30, 2025

虽然 写入buffer的顶点数据是6个, 但是决定 fillCount 上限的是 顶点的索引.

    fillBuffers (layer: TiledLayer, renderer: IBatcher): void {
        if (!layer || layer.tiledDataArray.length === 0) return;

        const dataArray = layer.tiledDataArray;

        // 当前渲染的数据
        const data = dataArray[layer._tiledDataArrayIdx] as TiledRenderData;
        const renderData = data.renderData;
        if (!renderData) return;
        const iBuf = renderData.chunk.meshBuffer.iData;

        let indexOffset = renderData.chunk.meshBuffer.indexOffset;
        let vertexId = renderData.chunk.vertexOffset;
        const quadCount = renderData.vertexCount / 4;
        for (let i = 0; i < quadCount; i += 1) {
            iBuf[indexOffset] = vertexId;
            iBuf[indexOffset + 1] = vertexId + 1;
            iBuf[indexOffset + 2] = vertexId + 2;
            iBuf[indexOffset + 3] = vertexId + 2;
            iBuf[indexOffset + 4] = vertexId + 1;
            iBuf[indexOffset + 5] = vertexId + 3;
            indexOffset += 6;
            vertexId += 4;
        }
        renderData.chunk.meshBuffer.indexOffset = indexOffset;
    }

也就是上述代码中的 vertexCount / 4 决定了 fillCount

最多是 65536 / 4 .

Re: #

Changelog


Continuous Integration

This pull request:

  • needs automatic test cases check.

    Manual trigger with @cocos-robot run test cases afterward.

  • does not change any runtime related code or build configuration

    If any reviewer thinks the CI checks are needed, please uncheck this option, then close and reopen the issue.


Compatibility Check

This pull request:

  • changes public API, and have ensured backward compatibility with deprecated features.
  • affects platform compatibility, e.g. system version, browser version, platform sdk version, platform toolchain, language version, hardware compatibility etc.
  • affects file structure of the build package or build configuration which requires user project upgrade.
  • introduces breaking changes, please list all changes, affected features and the scope of violation.

虽然 写入buffer的顶点数据是6个, 但是决定 fillCount 上限的是 顶点的索引.

```ts

    fillBuffers (layer: TiledLayer, renderer: IBatcher): void {
        if (!layer || layer.tiledDataArray.length === 0) return;

        const dataArray = layer.tiledDataArray;

        // 当前渲染的数据
        const data = dataArray[layer._tiledDataArrayIdx] as TiledRenderData;
        const renderData = data.renderData;
        if (!renderData) return;
        const iBuf = renderData.chunk.meshBuffer.iData;

        let indexOffset = renderData.chunk.meshBuffer.indexOffset;
        let vertexId = renderData.chunk.vertexOffset;
        const quadCount = renderData.vertexCount / 4;
        for (let i = 0; i < quadCount; i += 1) {
            iBuf[indexOffset] = vertexId;
            iBuf[indexOffset + 1] = vertexId + 1;
            iBuf[indexOffset + 2] = vertexId + 2;
            iBuf[indexOffset + 3] = vertexId + 2;
            iBuf[indexOffset + 4] = vertexId + 1;
            iBuf[indexOffset + 5] = vertexId + 3;
            indexOffset += 6;
            vertexId += 4;
        }
        renderData.chunk.meshBuffer.indexOffset = indexOffset;
    }

```

也就是上述代码中的  vertexCount / 4 决定了 fillCount

最多是 65536 / 4 .
@finscn finscn changed the title Update simple.ts 修正 MaxGridsLimit 计算错误. 修正 tiledmap 的 simple.ts 中 MaxGridsLimit 计算错误. Aug 30, 2025
Copy link

Code Size Check Report

Wechat (WASM) Before After Diff
2D Empty (legacy pipeline) 1009429 bytes 1009429 bytes ✅ 0 bytes
2D All (legacy pipeline) 2674774 bytes 2674753 bytes 👍 -21 bytes
2D All (new pipeline) 2765676 bytes 2765655 bytes 👍 -21 bytes
(2D + 3D) All 10022031 bytes 10022010 bytes 👍 -21 bytes
Web (WASM + ASMJS) Before After Diff
(2D + 3D) All 16841090 bytes 16841069 bytes 👍 -21 bytes

Interface Check Report

This pull request does not change any public interfaces !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant