首页 > 其他分享 >Cocos Creator引擎开发:物理引擎使用_物理材质的应用

Cocos Creator引擎开发:物理引擎使用_物理材质的应用

时间:2024-11-21 20:49:43浏览次数:3  
标签:node collisionShape Cocos cc 引擎 rigidbody 材质 物理

物理材质的应用

在Cocos Creator中,物理材质(Physics Material)是用于定义物理对象表面特性的资源。通过物理材质,可以控制物体之间的摩擦力、弹性等属性,从而实现更加真实和丰富的物理效果。本节将详细介绍物理材质的原理和应用方法,并通过具体的代码示例来演示如何在项目中使用物理材质。

物理材质的原理

物理材质主要包含两个属性:摩擦力(Friction)和弹性(Restitution)。

  • 摩擦力(Friction):摩擦力决定了物体在接触时的滑动阻力。较高的摩擦力会使物体更容易停止滑动,而较低的摩擦力则会使物体更容易滑动。摩擦力的值范围通常在0到1之间,0表示无摩擦,1表示最大摩擦。

  • 弹性(Restitution):弹性决定了物体在碰撞时的反弹程度。较高的弹性会使物体在碰撞后弹得更高,而较低的弹性则会使物体在碰撞后几乎不弹起。弹性的值范围通常在0到1之间,0表示无弹性,1表示最大弹性。

物理材质还可以包含其他属性,如动态摩擦力(Dynamic Friction)和静态摩擦力(Static Friction),这些属性在某些高级物理模拟中会非常有用。

物理材质的创建和设置

在Cocos Creator中,创建物理材质的步骤如下:

  1. 创建物理材质资源

    • 在项目资源管理器中右击,选择Create -> Physics Material,创建一个新的物理材质资源。

    • 选中创建的物理材质资源,然后在属性检查器中设置摩擦力和弹性等属性。

  2. 应用物理材质

    • 将物理材质资源拖拽到物理组件(如RigidbodyCollider)的Material属性上,即可应用该物理材质。

物理材质的应用示例

示例1:创建和应用基本物理材质

创建物理材质
  1. 在项目资源管理器中右击,选择Create -> Physics Material,创建一个新的物理材质资源,命名为BasicMaterial

  2. 选中BasicMaterial,在属性检查器中设置如下属性:

    • Friction: 0.5

    • Restitution: 0.6

应用物理材质

假设我们有一个球体(Sphere)和一个平面(Plane),我们希望球体在平面上滚动时具有一定的摩擦力和弹性。

  1. 创建球体和平面

    • 在场景中创建一个球体节点,命名为Sphere

    • 在场景中创建一个平面节点,命名为Plane

  2. 添加物理组件

    • 选中Sphere节点,添加Rigidbody组件和Collider组件(选择Sphere Collider)。

    • 选中Plane节点,添加Collider组件(选择Box Collider)。

  3. 应用物理材质

    • BasicMaterial拖拽到Sphere节点的Sphere Collider组件的Material属性上。

    • BasicMaterial拖拽到Plane节点的Box Collider组件的Material属性上。

编写脚本

为了使球体在平面上滚动,我们可以编写一个简单的脚本来控制球体的移动和碰撞效果。


// BallControl.js

cc.Class({

    extends: cc.Component,



    properties: {

        // 球体的初始速度

        initialVelocity: cc.Vec2,

        // 球体的加速度

        acceleration: cc.Vec2

    },



    onl oad: function () {

        // 获取刚体组件

        this.rigidbody = this.node.getComponent(cc.RigidBody);

        if (!this.rigidbody) {

            this.rigidbody = this.node.addComponent(cc.RigidBody);

            this.rigidbody.type = cc.RigidBodyType.Dynamic;

        }



        // 获取碰撞器组件

        this.collisionShape = this.node.getComponent(cc.Collider);

        if (!this.collisionShape) {

            this.collisionShape = this.node.addComponent(cc.Collider);

            this.collisionShape.type = cc.ColliderType.Sphere;

        }



        // 应用物理材质

        this.collisionShape.material = this.node.getComponent(cc.PhysicsMaterial);

        if (!this.collisionShape.material) {

            this.collisionShape.material = cc.resources.load('BasicMaterial', cc.PhysicsMaterial);

        }



        // 初始化速度

        this.rigidbody.linearVelocity = this.initialVelocity;

    },



    update: function (dt) {

        // 更新速度

        this.rigidbody.linearVelocity = this.rigidbody.linearVelocity.add(this.acceleration.mul(dt));

    },



    onCollisionEnter: function (other, self) {

        // 碰撞时的处理

        cc.log('球体与平面发生碰撞');

    }

});

示例2:高级物理材质设置

在某些情况下,我们可能需要更精细地控制物理材质的属性,例如动态摩擦力和静态摩擦力。

  1. 创建高级物理材质

    • 在项目资源管理器中右击,选择Create -> Physics Material,创建一个新的物理材质资源,命名为AdvancedMaterial

    • 选中AdvancedMaterial,在属性检查器中设置如下属性:

      • Friction: 0.4

      • Restitution: 0.7

      • Dynamic Friction: 0.3

      • Static Friction: 0.5

  2. 应用高级物理材质

    • AdvancedMaterial拖拽到Sphere节点的Sphere Collider组件的Material属性上。

    • AdvancedMaterial拖拽到Plane节点的Box Collider组件的Material属性上。

编写脚本

为了展示动态摩擦力和静态摩擦力的效果,我们可以通过脚本控制球体的移动和停止。


// AdvancedBallControl.js

cc.Class({

    extends: cc.Component,



    properties: {

        // 球体的初始速度

        initialVelocity: cc.Vec2,

        // 球体的加速度

        acceleration: cc.Vec2,

        // 球体的最大速度

        maxSpeed: cc.Vec2

    },



    onl oad: function () {

        // 获取刚体组件

        this.rigidbody = this.node.getComponent(cc.RigidBody);

        if (!this.rigidbody) {

            this.rigidbody = this.node.addComponent(cc.RigidBody);

            this.rigidbody.type = cc.RigidBodyType.Dynamic;

        }



        // 获取碰撞器组件

        this.collisionShape = this.node.getComponent(cc.Collider);

        if (!this.collisionShape) {

            this.collisionShape = this.node.addComponent(cc.Collider);

            this.collisionShape.type = cc.ColliderType.Sphere;

        }



        // 应用物理材质

        this.collisionShape.material = this.node.getComponent(cc.PhysicsMaterial);

        if (!this.collisionShape.material) {

            this.collisionShape.material = cc.resources.load('AdvancedMaterial', cc.PhysicsMaterial);

        }



        // 初始化速度

        this.rigidbody.linearVelocity = this.initialVelocity;

    },



    update: function (dt) {

        // 更新速度

        let newVelocity = this.rigidbody.linearVelocity.add(this.acceleration.mul(dt));



        // 限制最大速度

        if (newVelocity.x > this.maxSpeed.x) {

            newVelocity.x = this.maxSpeed.x;

        } else if (newVelocity.x < -this.maxSpeed.x) {

            newVelocity.x = -this.maxSpeed.x;

        }



        if (newVelocity.y > this.maxSpeed.y) {

            newVelocity.y = this.maxSpeed.y;

        } else if (newVelocity.y < -this.maxSpeed.y) {

            newVelocity.y = -this.maxSpeed.y;

        }



        this.rigidbody.linearVelocity = newVelocity;

    },



    onCollisionEnter: function (other, self) {

        // 碰撞时的处理

        cc.log('球体与平面发生碰撞');

    }

});

示例3:动态更改物理材质

在某些游戏场景中,我们可能需要在运行时动态更改物理材质的属性,以实现不同的物理效果。

  1. 创建多个物理材质

    • 在项目资源管理器中右击,选择Create -> Physics Material,创建一个新的物理材质资源,命名为Material1

    • 选中Material1,在属性检查器中设置如下属性:

      • Friction: 0.1

      • Restitution: 0.9

    • 同样步骤创建另一个物理材质资源,命名为Material2

    • 选中Material2,在属性检查器中设置如下属性:

      • Friction: 0.9

      • Restitution: 0.1

  2. 动态更改物理材质

    • Sphere节点上添加一个按钮,用于切换物理材质。
编写脚本

// DynamicMaterialControl.js

cc.Class({

    extends: cc.Component,



    properties: {

        // 球体的碰撞器组件

        collisionShape: {

            type: cc.Collider,

            default: null

        },

        // 物理材质1

        material1: {

            type: cc.PhysicsMaterial,

            default: null

        },

        // 物理材质2

        material2: {

            type: cc.PhysicsMaterial,

            default: null

        },

        // 切换按钮

        switchButton: {

            type: cc.Button,

            default: null

        }

    },



    onl oad: function () {

        // 初始化物理材质

        this.collisionShape.material = this.material1;



        // 绑定按钮点击事件

        this.switchButton.node.on('click', this.switchMaterial, this);

    },



    switchMaterial: function () {

        // 切换物理材质

        if (this.collisionShape.material === this.material1) {

            this.collisionShape.material = this.material2;

            cc.log('切换到物理材质2');

        } else {

            this.collisionShape.material = this.material1;

            cc.log('切换到物理材质1');

        }

    }

});

示例4:物理材质在不同物体上的应用

在实际游戏中,不同物体可能需要不同的物理材质。例如,一个光滑的地面和一个粗糙的地面对球体的滚动效果会有很大的不同。

  1. 创建不同地面

    • 在项目资源管理器中右击,选择Create -> Physics Material,创建一个新的物理材质资源,命名为SmoothGroundMaterial

    • 选中SmoothGroundMaterial,在属性检查器中设置如下属性:

      • Friction: 0.1

      • Restitution: 0.2

    • 同样步骤创建另一个物理材质资源,命名为RoughGroundMaterial

    • 选中RoughGroundMaterial,在属性检查器中设置如下属性:

      • Friction: 0.9

      • Restitution: 0.8

  2. 应用不同物理材质

    • 在场景中创建两个平面节点,分别命名为SmoothGroundRoughGround

    • SmoothGroundMaterial拖拽到SmoothGround节点的Box Collider组件的Material属性上。

    • RoughGroundMaterial拖拽到RoughGround节点的Box Collider组件的Material属性上。

编写脚本

为了展示不同物理材质的效果,我们可以在球体上添加一个脚本来控制球体在不同地面上的滚动。


// BallOnDifferentGrounds.js

cc.Class({

    extends: cc.Component,



    properties: {

        // 球体的初始速度

        initialVelocity: cc.Vec2,

        // 球体的加速度

        acceleration: cc.Vec2

    },



    onl oad: function () {

        // 获取刚体组件

        this.rigidbody = this.node.getComponent(cc.RigidBody);

        if (!this.rigidbody) {

            this.rigidbody = this.node.addComponent(cc.RigidBody);

            this.rigidbody.type = cc.RigidBodyType.Dynamic;

        }



        // 获取碰撞器组件

        this.collisionShape = this.node.getComponent(cc.Collider);

        if (!this.collisionShape) {

            this.collisionShape = this.node.addComponent(cc.Collider);

            this.collisionShape.type = cc.ColliderType.Sphere;

        }



        // 初始化速度

        this.rigidbody.linearVelocity = this.initialVelocity;

    },



    update: function (dt) {

        // 更新速度

        this.rigidbody.linearVelocity = this.rigidbody.linearVelocity.add(this.acceleration.mul(dt));

    },



    onCollisionEnter: function (other, self) {

        // 碰撞时的处理

        if (other.node.name === 'SmoothGround') {

            cc.log('球体与光滑地面发生碰撞');

        } else if (other.node.name === 'RoughGround') {

            cc.log('球体与粗糙地面发生碰撞');

        }

    }

});

示例5:物理材质在角色控制中的应用

在动作游戏中,角色的物理属性(如摩擦力和弹性)对游戏体验非常重要。通过物理材质,可以实现角色在不同地面或物体上的不同行为。

  1. 创建角色物理材质

    • 在项目资源管理器中右击,选择Create -> Physics Material,创建一个新的物理材质资源,命名为CharacterMaterial

    • 选中CharacterMaterial,在属性检查器中设置如下属性:

      • Friction: 0.5

      • Restitution: 0.2

  2. 应用角色物理材质

    • 在场景中创建一个角色节点,命名为Character

    • CharacterMaterial拖拽到Character节点的Box Collider组件的Material属性上。

编写脚本

为了控制角色的移动和碰撞效果,我们可以在角色节点上添加一个脚本。


// CharacterControl.js

cc.Class({

    extends: cc.Component,



    properties: {

        // 角色的初始速度

        initialVelocity: cc.Vec2,

        // 角色的加速度

        acceleration: cc.Vec2,

        // 角色的最大速度

        maxSpeed: cc.Vec2

    },



    onl oad: function () {

        // 获取刚体组件

        this.rigidbody = this.node.getComponent(cc.RigidBody);

        if (!this.rigidbody) {

            this.rigidbody = this.node.addComponent(cc.RigidBody);

            this.rigidbody.type = cc.RigidBodyType.Dynamic;

        }



        // 获取碰撞器组件

        this.collisionShape = this.node.getComponent(cc.Collider);

        if (!this.collisionShape) {

            this.collisionShape = this.node.addComponent(cc.Collider);

            this.collisionShape.type = cc.ColliderType.Box;

        }



        // 应用物理材质

        this.collisionShape.material = this.node.getComponent(cc.PhysicsMaterial);

        if (!this.collisionShape.material) {

            this.collisionShape.material = cc.resources.load('CharacterMaterial', cc.PhysicsMaterial);

        }



        // 初始化速度

        this.rigidbody.linearVelocity = this.initialVelocity;

    },



    update: function (dt) {

        // 更新速度

        let newVelocity = this.rigidbody.linearVelocity.add(this.acceleration.mul(dt));



        // 限制最大速度

        if (newVelocity.x > this.maxSpeed.x) {

            newVelocity.x = this.maxSpeed.x;

        } else if (newVelocity.x < -this.maxSpeed.x) {

            newVelocity.x = -this.maxSpeed.x;

        }



        if (newVelocity.y > this.maxSpeed.y) {

            newVelocity.y = this.maxSpeed.y;

        } else if (newVelocity.y < -this.maxSpeed.y) {

            newVelocity.y = -this.maxSpeed.y;

        }



        this.rigidbody.linearVelocity = newVelocity;

    },



    onCollisionEnter: function (other, self) {

        // 碰撞时的处理

        if (other.node.name === 'SmoothGround') {

            cc.log('角色与光滑地面发生碰撞');

        } else if (other.node.name === 'RoughGround') {

            cc.log('角色与粗糙地面发生碰撞');

        }

    }

});

示例6:物理材质在环境物体上的应用

环境物体(如墙壁、地板、障碍物等)的物理材质也会影响角色和其他物体的物理行为。通过设置不同的物理材质,可以实现更加丰富的游戏环境。

  1. 创建环境物体物理材质

    • 在项目资源管理器中右击,选择Create -> Physics Material,创建一个新的物理材质资源,命名为EnvironmentMaterial

    • 选中EnvironmentMaterial,在属性检查器中设置如下属性:

      • Friction: 0.7

      • Restitution: 0.3

  2. 应用环境物体物理材质

    • 在场景中创建一个环境物体节点,命名为Wall

    • EnvironmentMaterial拖拽到Wall节点的Box Collider组件的Material属性上。

编写脚本

为了展示环境物体对角色的影响,我们可以在角色节点上添加一个脚本来控制角色与环境物体的碰撞。


// EnvironmentControl.js

cc.Class({

    extends: cc.Component,



    properties: {

        // 角色的初始速度

        initialVelocity: cc.Vec2,

        // 角色的加速度

        acceleration: cc.Vec2,

        // 角色的最大速度

        maxSpeed: cc.Vec2

    },



    onl oad: function () {

        // 获取刚体组件

        this.rigidbody = this.node.getComponent(cc.RigidBody);

        if (!this.rigidbody) {

            this.rigidbody = this.node.addComponent(cc.RigidBody);

            this.rigidbody.type = cc.RigidBodyType.Dynamic;

        }



        // 获取碰撞器组件

        this.collisionShape = this.node.getComponent(cc.Collider);

        if (!this.collisionShape) {

            this.collisionShape = this.node.addComponent(cc.Collider);

            this.collisionShape.type = cc.ColliderType.Box;

        }



        // 应用物理材质

        this.collisionShape.material = this.node.getComponent(cc.PhysicsMaterial);

        if (!this.collisionShape.material) {

            this.collisionShape.material = cc.resources.load('CharacterMaterial', cc.PhysicsMaterial);

        }



        // 初始化速度

        this.rigidbody.linearVelocity = this.initialVelocity;

    },



    update: function (dt) {

        // 更新速度

        let newVelocity = this.rigidbody.linearVelocity.add(this.acceleration.mul(dt));



        // 限制最大速度

        if (newVelocity.x > this.maxSpeed.x) {

            newVelocity.x = this.maxSpeed.x;

        } else if (newVelocity.x < -this.maxSpeed.x) {

```javascript

            newVelocity.x = -this.maxSpeed.x;

        }



        if (newVelocity.y > this.maxSpeed.y) {

            newVelocity.y = this.maxSpeed.y;

        } else if (newVelocity.y < -this.maxSpeed.y) {

            newVelocity.y = -this.maxSpeed.y;

        }



        this.rigidbody.linearVelocity = newVelocity;

    },



    onCollisionEnter: function (other, self) {

        // 碰撞时的处理

        if (other.node.name === 'SmoothGround') {

            cc.log('角色与光滑地面发生碰撞');

        } else if (other.node.name === 'RoughGround') {

            cc.log('角色与粗糙地面发生碰撞');

        } else if (other.node.name === 'Wall') {

            cc.log('角色与墙壁发生碰撞');

        }

    }

});

示例6:物理材质在环境物体上的应用(续)

创建环境物体
  1. 创建环境物体节点

    • 在场景中创建一个环境物体节点,命名为Wall

    • Wall节点的位置和大小调整到合适的位置,以模拟墙壁。

  2. 添加物理组件

    • 选中Wall节点,添加Rigidbody组件和Collider组件(选择Box Collider)。

    • Rigidbody组件的类型设置为Static,因为墙壁是静止的物体。

  3. 应用环境物体物理材质

    • EnvironmentMaterial拖拽到Wall节点的Box Collider组件的Material属性上。
编写脚本(续)

为了更好地展示环境物体对角色的影响,我们可以在环境物体节点上添加一个脚本来记录和显示碰撞信息。


// WallControl.js

cc.Class({

    extends: cc.Component,



    properties: {

        // 墙壁的物理材质

        material: {

            type: cc.PhysicsMaterial,

            default: null

        }

    },



    onl oad: function () {

        // 获取碰撞器组件

        this.collisionShape = this.node.getComponent(cc.Collider);

        if (!this.collisionShape) {

            this.collisionShape = this.node.addComponent(cc.Collider);

            this.collisionShape.type = cc.ColliderType.Box;

        }



        // 应用物理材质

        this.collisionShape.material = this.material;

    },



    onCollisionEnter: function (other, self) {

        // 碰撞时的处理

        if (other.node.name === 'Character') {

            cc.log('墙壁与角色发生碰撞');

        } else if (other.node.name === 'Sphere') {

            cc.log('墙壁与球体发生碰撞');

        }

    }

});

示例7:物理材质在多物体交互中的应用

在多物体交互的场景中,物理材质可以更加细致地控制不同物体之间的摩擦和弹性,从而实现复杂而真实的效果。

  1. 创建多个物理材质

    • 在项目资源管理器中右击,选择Create -> Physics Material,创建一个新的物理材质资源,命名为BallMaterial1

    • 选中BallMaterial1,在属性检查器中设置如下属性:

      • Friction: 0.3

      • Restitution: 0.8

    • 同样步骤创建另一个物理材质资源,命名为BallMaterial2

    • 选中BallMaterial2,在属性检查器中设置如下属性:

      • Friction: 0.7

      • Restitution: 0.4

  2. 创建多个球体

    • 在场景中创建两个球体节点,分别命名为Ball1Ball2

    • BallMaterial1拖拽到Ball1节点的Sphere Collider组件的Material属性上。

    • BallMaterial2拖拽到Ball2节点的Sphere Collider组件的Material属性上。

  3. 添加物理组件

    • 选中Ball1节点,添加Rigidbody组件和Collider组件(选择Sphere Collider)。

    • 选中Ball2节点,添加Rigidbody组件和Collider组件(选择Sphere Collider)。

    • Rigidbody组件的类型设置为Dynamic,因为球体是动态物体。

编写脚本

为了展示多个球体之间的交互效果,我们可以在球体节点上添加一个脚本来控制球体的移动和碰撞。


// MultiBallControl.js

cc.Class({

    extends: cc.Component,



    properties: {

        // 球体的初始速度

        initialVelocity: cc.Vec2,

        // 球体的加速度

        acceleration: cc.Vec2,

        // 球体的最大速度

        maxSpeed: cc.Vec2

    },



    onl oad: function () {

        // 获取刚体组件

        this.rigidbody = this.node.getComponent(cc.RigidBody);

        if (!this.rigidbody) {

            this.rigidbody = this.node.addComponent(cc.RigidBody);

            this.rigidbody.type = cc.RigidBodyType.Dynamic;

        }



        // 获取碰撞器组件

        this.collisionShape = this.node.getComponent(cc.Collider);

        if (!this.collisionShape) {

            this.collisionShape = this.node.addComponent(cc.Collider);

            this.collisionShape.type = cc.ColliderType.Sphere;

        }



        // 应用物理材质

        this.collisionShape.material = this.node.getComponent(cc.PhysicsMaterial);

        if (!this.collisionShape.material) {

            this.collisionShape.material = cc.resources.load(this.node.name === 'Ball1' ? 'BallMaterial1' : 'BallMaterial2', cc.PhysicsMaterial);

        }



        // 初始化速度

        this.rigidbody.linearVelocity = this.initialVelocity;

    },



    update: function (dt) {

        // 更新速度

        let newVelocity = this.rigidbody.linearVelocity.add(this.acceleration.mul(dt));



        // 限制最大速度

        if (newVelocity.x > this.maxSpeed.x) {

            newVelocity.x = this.maxSpeed.x;

        } else if (newVelocity.x < -this.maxSpeed.x) {

            newVelocity.x = -this.maxSpeed.x;

        }



        if (newVelocity.y > this.maxSpeed.y) {

            newVelocity.y = this.maxSpeed.y;

        } else if (newVelocity.y < -this.maxSpeed.y) {

            newVelocity.y = -this.maxSpeed.y;

        }



        this.rigidbody.linearVelocity = newVelocity;

    },



    onCollisionEnter: function (other, self) {

        // 碰撞时的处理

        if (other.node.name === 'Ball1' || other.node.name === 'Ball2') {

            cc.log(this.node.name + '与另一个球体发生碰撞');

        } else if (other.node.name === 'SmoothGround') {

            cc.log(this.node.name + '与光滑地面发生碰撞');

        } else if (other.node.name === 'RoughGround') {

            cc.log(this.node.name + '与粗糙地面发生碰撞');

        } else if (other.node.name === 'Wall') {

            cc.log(this.node.name + '与墙壁发生碰撞');

        }

    }

});

总结

通过上述示例,我们可以看到物理材质在Cocos Creator中的重要性和灵活性。物理材质不仅可以通过设置摩擦力和弹性来控制物体之间的相互作用,还可以在运行时动态更改,以实现不同的物理效果。合理使用物理材质可以大幅提升游戏的真实感和可玩性。

  • 基本物理材质:适用于简单的物理模拟,如球体在平面上的滚动。

  • 高级物理材质:适用于需要更精细控制的物理模拟,如动态摩擦力和静态摩擦力的设置。

  • 动态更改物理材质:适用于需要在运行时改变物理属性的场景,如角色在不同地面上的行为。

  • 多物体交互:适用于多个物理对象之间的复杂交互,如多个球体之间的碰撞。

希望这些示例能帮助你在项目中更好地应用物理材质,实现更加丰富和真实的游戏物理效果。
在这里插入图片描述

标签:node,collisionShape,Cocos,cc,引擎,rigidbody,材质,物理
From: https://blog.csdn.net/chenlz2007/article/details/143954441

相关文章

  • Cocos Creator引擎开发:物理引擎使用_物理触发器与事件处理
    物理触发器与事件处理在CocosCreator中,物理触发器和事件处理是实现复杂物理交互的重要手段。物理触发器(Trigger)是一种特殊的碰撞体,用于检测物体之间的接触,但不会产生物理响应。事件处理则是当触发器检测到接触时,执行特定的逻辑。物理触发器的基本概念物理触发器在物理世......
  • Cocos Creator引擎开发:物理引擎使用_物理世界的设置与调试
    物理世界的设置与调试在CocosCreator中,物理引擎是模拟现实世界物理规律的关键组件,它可以帮助开发者实现逼真的物理效果,如碰撞检测、刚体运动、关节连接等。本节将详细介绍如何在CocosCreator中设置和调试物理世界,包括物理世界的初始化、物理材质的设置、物理关节的使用以......
  • 15、物理IO_1
    物理读(physicalread)数据实际存储在磁盘上,将数据从磁盘上读取到内存里,就叫做物理读将修改完的数据从内存写到磁盘,叫做物理写一般我们关注的主要是物理读IOPS(或者TPS):每秒读的次数(主要关注的)IOthroughart:IO吞吐量(每秒多少M)数据文件数据文件分为两类:1、临时数据文件(tempora......
  • 痞子衡嵌入式:利用i.MXRT10xx系列内部DCP引擎计算CRC32值时需注意数据长度对齐
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是利用i.MXRT10xx系列内部DCP引擎计算CRC32值时需注意数据长度对齐。MCU开发里常常需要CRC校验来检查数据完整性,CRC校验既可以纯软件实现也可以借助MCU片内外设硬件实现。大部分MCU里通常都会包含一......
  • Server2025 和 GPU-P(GPU Partitioning,GPU 分区技术)的正式支持,  GPU-P 是一种将物理 G
     Server2025和GPU-P(GPUPartitioning,GPU分区技术)的正式支持, WindowsServer2025系统将全面支持GPU-P技术。然而,GPU-P是一种将物理GPU划分为多个虚拟GPU(vGPU)并分配给不同虚拟机或容器的技术。如果你是在询问WindowsServer或MicrosoftHyper-V是否已经正式支持......
  • 物理hack
    声明声明文章只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。✍......
  • BING搜索引擎去广告
    一、问题现状在浏览器地址栏搜关键字会有广告,我用的BING最他妈恶心的是,点到广告条目左边的空白区,一样进入广告二、解决办法查阅资料,原因是bing的url被添加了FORM参数https://cn.bing.com/search?q=<关键字>&PC=<>&FORM=<小可爱>进入浏览器安装目录cmdergrep-Hnr'&FORM=......
  • 空间计算、物理计算、实时仿真与创造拥有「自主行为」的小狗 | 播客《编码人声》
       「编码人声」是由「RTE开发者社区」策划的一档播客节目,关注行业发展变革、开发者职涯发展、技术突破以及创业创新,由开发者来分享开发者眼中的工作与生活。 虚拟世界与现实世界的界限逐渐模糊,已然成为不争的事实。但究竟哪些曾经的幻想已然照进现实,又有哪些挑战依然横......
  • 计算机网络复习物理层(第二章)
    物理层数据通信的概念回顾数字信号常用编码方式波特率与比特率s:比特率,每秒多少比特B:波特率,每秒多少码元(指的是每秒调制信号的变化次数)k:多相调制的相数log2k:一个码元所含二进制比特数信道复用技术信道复用有多种,如频分复用、时分复用、波分复用、码分复用。其中频分......
  • HTTP/3 深入解读:现代互联网的加速引擎
    文章目录引言HTTP协议的进化之路初代HTTP:从1.0到1.1的过渡HTTP/2的革命性改进新的时代:HTTP/3登场HTTP3的技术亮点解析QUIC协议:重塑连接模式安全性内建:与TLS1.3深度集成更强的性能优化HTTP3在实际场景中的优势视频流媒体与直播在线游戏:微秒级优化移动设备:提升用户体验......