From d45620918a24e220bc74dbe91bc2596e1706e2ee Mon Sep 17 00:00:00 2001 From: zhaoduo-ustc Date: Wed, 18 Jun 2025 16:17:21 +0800 Subject: [PATCH 1/3] init 6.0 new api Signed-off-by: zhaoduo-ustc --- api/graphics3d/Scene.d.ts | 21 ++++- api/graphics3d/SceneNodes.d.ts | 33 ++++++- api/graphics3d/ScenePostProcessSettings.d.ts | 72 +++++++++++++++ api/graphics3d/SceneTypes.d.ts | 92 ++++++++++++++++++++ 4 files changed, 216 insertions(+), 2 deletions(-) diff --git a/api/graphics3d/Scene.d.ts b/api/graphics3d/Scene.d.ts index 51932db0b0..b1d2322195 100644 --- a/api/graphics3d/Scene.d.ts +++ b/api/graphics3d/Scene.d.ts @@ -20,7 +20,7 @@ import { Shader, MaterialType, Material, Animation, Environment, Image, MeshResource, Sampler, SceneResource } from './SceneResources'; import { Camera, LightType, Light, Node, NodeType, Geometry } from './SceneNodes'; -import { Position3, Color, GeometryDefinition, Vec2, Vec3, Vec4 } from './SceneTypes'; +import { Position3, Color, GeometryDefinition, Vec2, Vec3, Vec4, RenderBackend } from './SceneTypes'; /** * The scene resource parameters type. @@ -301,6 +301,16 @@ export interface SceneComponent { * @since 20 */ export interface RenderContext { + /** + * Determine which render backend to use + * Use vulkan by default + * + * @type { RenderBackend } + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + renderBackend?: RenderBackend + /** * Get resource factory. * @@ -347,6 +357,15 @@ export interface RenderParameters { * @since 12 */ export class Scene { + /** + * Returns a rendering engine version string. + * + * @returns { string } + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + static getVersion(): string + /** * Get default render context * diff --git a/api/graphics3d/SceneNodes.d.ts b/api/graphics3d/SceneNodes.d.ts index 021e109526..6268eb1e5e 100644 --- a/api/graphics3d/SceneNodes.d.ts +++ b/api/graphics3d/SceneNodes.d.ts @@ -19,7 +19,7 @@ */ import { SceneResource, Mesh, Morpher } from './SceneResources'; -import { Position3, Quaternion, Scale3, Color, Vec2, Vec3 } from './SceneTypes'; +import { Position3, Quaternion, Scale3, Color, Vec2, Vec3, RenderingPipelineType, ColorFormat } from './SceneTypes'; import { PostProcessSettings } from './ScenePostProcessSettings'; import { RaycastParameters, RaycastResult } from './Scene'; @@ -460,6 +460,37 @@ export interface Camera extends Node { */ clearColor: Color | null; + /** + * Controls whether MSAA is enabled or not. + * + * @type { boolean } + * @syscap SystemCapability.ArkUi.Graphics3D + * @default false + * @since 20 + */ + msaa?: boolean; + + /** + * Controls the rendering pipeline. + * Note that if LIGHT_FORWARD pipeline is selected, some features will be unavailable. + * + * @type { RenderingPipelineType } + * @syscap SystemCapability.ArkUi.Graphics3D + * @default RenderingPipelineType.FORWARD + * @since 20 + */ + renderingPipeline?: RenderingPipelineType + + /** + * Controls color format to use for the default render target. + * + * @type { ColorFormat } + * @syscap SystemCapability.ArkUi.Graphics3D + * @default ColorFormat.UNDEFINED + * @since 20 + */ + defaultRenderTargetFormat?: ColorFormat + /** * Cast a ray to a position on the screen and list what it hits. * diff --git a/api/graphics3d/ScenePostProcessSettings.d.ts b/api/graphics3d/ScenePostProcessSettings.d.ts index a9e6d1a55a..760628f3c9 100644 --- a/api/graphics3d/ScenePostProcessSettings.d.ts +++ b/api/graphics3d/ScenePostProcessSettings.d.ts @@ -125,6 +125,60 @@ export interface BloomSettings { scatter?: number; } +/** + * Defines vignette parameters. + * + * @typedef VignetteSettings + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ +export interface VignetteSettings { + /** + * Vignette coefficient. + * + * @type { ?number } + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + coefficient: number; + + /** + * Vignette power. + * + * @type { ?number } + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + power: number; +} + +/** + * Defines color fringe parameters. + * + * @typedef ColorFringeSettings + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ +export interface ColorFringeSettings { + /** + * Color fringe coefficient. + * + * @type { ?number } + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + coefficient: number; + + /** + * Color fringe distance coefficient. + * + * @type { ?number } + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + distanceCoefficient: number; +} + /** * Defines post processing settings. * @@ -150,4 +204,22 @@ export interface PostProcessSettings { * @since 18 */ bloom?: BloomSettings; + + /** + * Bloom settings of the post processing settings + * + * @type { ?VignetteSettings } + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + vignette?: VignetteSettings; + + /** + * Bloom settings of the post processing settings + * + * @type { ?ColorFringeSettings } + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + colorFringe?: ColorFringeSettings; } diff --git a/api/graphics3d/SceneTypes.d.ts b/api/graphics3d/SceneTypes.d.ts index d871789102..ae63da5883 100644 --- a/api/graphics3d/SceneTypes.d.ts +++ b/api/graphics3d/SceneTypes.d.ts @@ -508,6 +508,98 @@ export class SphereGeometry extends GeometryDefinition { */ segmentCount: number; } + +/** + * The enum of rendering pipeline type. + * + * @enum { number } + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ +export enum RenderingPipelineType { + + /** + * Light-weight forward pipeline which renders directly to back buffer. + * This pipeline can only do per-pixel effects (e.g. tonemapping) in the shader, + * complex effects (e.g. bloom) are not supported. + * + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + LIGHT_FORWARD = 0, + /** + * Default forward pipeline. + * + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + FORWARD = 1 +} + +/** + * The enum of render backend type. + * + * @enum { number } + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ +export enum RenderBackend +{ + /** + * use gles backend + * + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + VULKAN = 1, + + /** + * use vulkan backend + * + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + OPEN_GLES = 2 +} + +/** + * Color format types. + * + * @enum { number } + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ +export enum ColorFormat { + /** + * 8-bit/channel sRGB RGB + * + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + R8G8B8_SRGB = 29, + /** + * 8-bit sRGB RGBA + * + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + R8G8B8A8_SRGB = 50, + /** + * 16-bit floating point linear RGB + * + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + R16G16B16_SFLOAT = 90, + /** + * 16-bit floating point linear RGBA + * + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + R16G16B16A16_SFLOAT = 97 +} + /** * 3D position information. * -- Gitee From 7eb766076cf6641f92cb20db59d3e1c35d1e91d1 Mon Sep 17 00:00:00 2001 From: zhaoduo-ustc Date: Wed, 18 Jun 2025 16:17:21 +0800 Subject: [PATCH 2/3] init 6.0 new api Signed-off-by: zhaoduo-ustc --- api/graphics3d/Scene.d.ts | 21 ++++- api/graphics3d/SceneNodes.d.ts | 33 ++++++- api/graphics3d/ScenePostProcessSettings.d.ts | 72 +++++++++++++++ api/graphics3d/SceneTypes.d.ts | 92 ++++++++++++++++++++ 4 files changed, 216 insertions(+), 2 deletions(-) diff --git a/api/graphics3d/Scene.d.ts b/api/graphics3d/Scene.d.ts index 51932db0b0..125d6e398e 100644 --- a/api/graphics3d/Scene.d.ts +++ b/api/graphics3d/Scene.d.ts @@ -20,7 +20,7 @@ import { Shader, MaterialType, Material, Animation, Environment, Image, MeshResource, Sampler, SceneResource } from './SceneResources'; import { Camera, LightType, Light, Node, NodeType, Geometry } from './SceneNodes'; -import { Position3, Color, GeometryDefinition, Vec2, Vec3, Vec4 } from './SceneTypes'; +import { Position3, Color, GeometryDefinition, Vec2, Vec3, Vec4, RenderingBackendType } from './SceneTypes'; /** * The scene resource parameters type. @@ -301,6 +301,16 @@ export interface SceneComponent { * @since 20 */ export interface RenderContext { + /** + * Determine which render backend to use + * Use vulkan by default + * + * @type { RenderBackend } + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + renderingBackend?: RenderingBackendType + /** * Get resource factory. * @@ -347,6 +357,15 @@ export interface RenderParameters { * @since 12 */ export class Scene { + /** + * Returns a rendering engine version string. + * + * @returns { string } + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + static getVersion(): string + /** * Get default render context * diff --git a/api/graphics3d/SceneNodes.d.ts b/api/graphics3d/SceneNodes.d.ts index 021e109526..6268eb1e5e 100644 --- a/api/graphics3d/SceneNodes.d.ts +++ b/api/graphics3d/SceneNodes.d.ts @@ -19,7 +19,7 @@ */ import { SceneResource, Mesh, Morpher } from './SceneResources'; -import { Position3, Quaternion, Scale3, Color, Vec2, Vec3 } from './SceneTypes'; +import { Position3, Quaternion, Scale3, Color, Vec2, Vec3, RenderingPipelineType, ColorFormat } from './SceneTypes'; import { PostProcessSettings } from './ScenePostProcessSettings'; import { RaycastParameters, RaycastResult } from './Scene'; @@ -460,6 +460,37 @@ export interface Camera extends Node { */ clearColor: Color | null; + /** + * Controls whether MSAA is enabled or not. + * + * @type { boolean } + * @syscap SystemCapability.ArkUi.Graphics3D + * @default false + * @since 20 + */ + msaa?: boolean; + + /** + * Controls the rendering pipeline. + * Note that if LIGHT_FORWARD pipeline is selected, some features will be unavailable. + * + * @type { RenderingPipelineType } + * @syscap SystemCapability.ArkUi.Graphics3D + * @default RenderingPipelineType.FORWARD + * @since 20 + */ + renderingPipeline?: RenderingPipelineType + + /** + * Controls color format to use for the default render target. + * + * @type { ColorFormat } + * @syscap SystemCapability.ArkUi.Graphics3D + * @default ColorFormat.UNDEFINED + * @since 20 + */ + defaultRenderTargetFormat?: ColorFormat + /** * Cast a ray to a position on the screen and list what it hits. * diff --git a/api/graphics3d/ScenePostProcessSettings.d.ts b/api/graphics3d/ScenePostProcessSettings.d.ts index a9e6d1a55a..760628f3c9 100644 --- a/api/graphics3d/ScenePostProcessSettings.d.ts +++ b/api/graphics3d/ScenePostProcessSettings.d.ts @@ -125,6 +125,60 @@ export interface BloomSettings { scatter?: number; } +/** + * Defines vignette parameters. + * + * @typedef VignetteSettings + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ +export interface VignetteSettings { + /** + * Vignette coefficient. + * + * @type { ?number } + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + coefficient: number; + + /** + * Vignette power. + * + * @type { ?number } + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + power: number; +} + +/** + * Defines color fringe parameters. + * + * @typedef ColorFringeSettings + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ +export interface ColorFringeSettings { + /** + * Color fringe coefficient. + * + * @type { ?number } + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + coefficient: number; + + /** + * Color fringe distance coefficient. + * + * @type { ?number } + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + distanceCoefficient: number; +} + /** * Defines post processing settings. * @@ -150,4 +204,22 @@ export interface PostProcessSettings { * @since 18 */ bloom?: BloomSettings; + + /** + * Bloom settings of the post processing settings + * + * @type { ?VignetteSettings } + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + vignette?: VignetteSettings; + + /** + * Bloom settings of the post processing settings + * + * @type { ?ColorFringeSettings } + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + colorFringe?: ColorFringeSettings; } diff --git a/api/graphics3d/SceneTypes.d.ts b/api/graphics3d/SceneTypes.d.ts index d871789102..4c1ed47b0f 100644 --- a/api/graphics3d/SceneTypes.d.ts +++ b/api/graphics3d/SceneTypes.d.ts @@ -508,6 +508,98 @@ export class SphereGeometry extends GeometryDefinition { */ segmentCount: number; } + +/** + * The enum of rendering pipeline type. + * + * @enum { number } + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ +export enum RenderingPipelineType { + + /** + * Light-weight forward pipeline which renders directly to back buffer. + * This pipeline can only do per-pixel effects (e.g. tonemapping) in the shader, + * complex effects (e.g. bloom) are not supported. + * + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + LIGHT_FORWARD = 0, + /** + * Default forward pipeline. + * + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + FORWARD = 1 +} + +/** + * The enum of render backend type. + * + * @enum { number } + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ +export enum RenderingBackendType +{ + /** + * use vulkan backend + * + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + VULKAN = 0, + + /** + * use gles backend + * + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + OPEN_GLES = 1 +} + +/** + * Color format types. + * + * @enum { number } + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ +export enum ColorFormat { + /** + * 8-bit/channel sRGB RGB + * + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + R8G8B8_SRGB = 29, + /** + * 8-bit sRGB RGBA + * + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + R8G8B8A8_SRGB = 50, + /** + * 16-bit floating point linear RGB + * + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + R16G16B16_SFLOAT = 90, + /** + * 16-bit floating point linear RGBA + * + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + R16G16B16A16_SFLOAT = 97 +} + /** * 3D position information. * -- Gitee From adeccf903beb7c49292b69b25d195ad6a0f3c07c Mon Sep 17 00:00:00 2001 From: zhaoduo_ustc Date: Sat, 12 Jul 2025 08:49:21 +0000 Subject: [PATCH 3/3] update api/graphics3d/Scene.d.ts. Signed-off-by: zhaoduo_ustc --- api/graphics3d/Scene.d.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/api/graphics3d/Scene.d.ts b/api/graphics3d/Scene.d.ts index 938434136c..1d6c8c407a 100644 --- a/api/graphics3d/Scene.d.ts +++ b/api/graphics3d/Scene.d.ts @@ -358,6 +358,17 @@ export interface RenderContext { * @since 20 */ loadPlugin(name: string): Promise; + + /** + * Register resource path + * + * @param { string } protocol - Protocol of the uri + * @param { string } uri - Path to register + * @returns { boolean } - True if registration success, false indicates the protocol has already been registered + * @syscap SystemCapability.ArkUi.Graphics3D + * @since 20 + */ + registerResourcePath(protocol: string, uri: string): boolean; } /** -- Gitee