How to get SceneKit objects to not bounce at all
up vote
0
down vote
favorite
I'm trying to make a part of my app which simulates dropping a set of books (the grey rectangles) one on top of another, on a table. Attached is a video.
However, unlike books in real life, these books bounce slightly after each one is dropped, to the point the pile of books falls over!
I've set the restitution
to zero on each book's physicsBody
, but this still happens:
private func buildBookNode(at position: SCNVector3, rotation: Measurement<UnitAngle> = Measurement(value: 0, unit: .radians)) -> SCNNode {
let book = SCNBox(width: 0.4, height: 0.1, length: 0.3, chamferRadius: 0)
let bookNode = SCNNode(geometry: book)
bookNode.physicsBody = SCNPhysicsBody(type: .dynamic, shape: nil)
bookNode.physicsBody?.isAffectedByGravity = true
bookNode.physicsBody?.friction = 2.0
bookNode.physicsBody?.mass = 0.3
bookNode.physicsBody?.restitution = 0.0
bookNode.position = position
bookNode.rotation = SCNVector4(0.0, 1.0, 0.0, rotation.converted(to: .radians).value)
return bookNode
}
What properties to I need to set to prevent the books bouncing on top of each other?
ios scenekit
add a comment |
up vote
0
down vote
favorite
I'm trying to make a part of my app which simulates dropping a set of books (the grey rectangles) one on top of another, on a table. Attached is a video.
However, unlike books in real life, these books bounce slightly after each one is dropped, to the point the pile of books falls over!
I've set the restitution
to zero on each book's physicsBody
, but this still happens:
private func buildBookNode(at position: SCNVector3, rotation: Measurement<UnitAngle> = Measurement(value: 0, unit: .radians)) -> SCNNode {
let book = SCNBox(width: 0.4, height: 0.1, length: 0.3, chamferRadius: 0)
let bookNode = SCNNode(geometry: book)
bookNode.physicsBody = SCNPhysicsBody(type: .dynamic, shape: nil)
bookNode.physicsBody?.isAffectedByGravity = true
bookNode.physicsBody?.friction = 2.0
bookNode.physicsBody?.mass = 0.3
bookNode.physicsBody?.restitution = 0.0
bookNode.position = position
bookNode.rotation = SCNVector4(0.0, 1.0, 0.0, rotation.converted(to: .radians).value)
return bookNode
}
What properties to I need to set to prevent the books bouncing on top of each other?
ios scenekit
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I'm trying to make a part of my app which simulates dropping a set of books (the grey rectangles) one on top of another, on a table. Attached is a video.
However, unlike books in real life, these books bounce slightly after each one is dropped, to the point the pile of books falls over!
I've set the restitution
to zero on each book's physicsBody
, but this still happens:
private func buildBookNode(at position: SCNVector3, rotation: Measurement<UnitAngle> = Measurement(value: 0, unit: .radians)) -> SCNNode {
let book = SCNBox(width: 0.4, height: 0.1, length: 0.3, chamferRadius: 0)
let bookNode = SCNNode(geometry: book)
bookNode.physicsBody = SCNPhysicsBody(type: .dynamic, shape: nil)
bookNode.physicsBody?.isAffectedByGravity = true
bookNode.physicsBody?.friction = 2.0
bookNode.physicsBody?.mass = 0.3
bookNode.physicsBody?.restitution = 0.0
bookNode.position = position
bookNode.rotation = SCNVector4(0.0, 1.0, 0.0, rotation.converted(to: .radians).value)
return bookNode
}
What properties to I need to set to prevent the books bouncing on top of each other?
ios scenekit
I'm trying to make a part of my app which simulates dropping a set of books (the grey rectangles) one on top of another, on a table. Attached is a video.
However, unlike books in real life, these books bounce slightly after each one is dropped, to the point the pile of books falls over!
I've set the restitution
to zero on each book's physicsBody
, but this still happens:
private func buildBookNode(at position: SCNVector3, rotation: Measurement<UnitAngle> = Measurement(value: 0, unit: .radians)) -> SCNNode {
let book = SCNBox(width: 0.4, height: 0.1, length: 0.3, chamferRadius: 0)
let bookNode = SCNNode(geometry: book)
bookNode.physicsBody = SCNPhysicsBody(type: .dynamic, shape: nil)
bookNode.physicsBody?.isAffectedByGravity = true
bookNode.physicsBody?.friction = 2.0
bookNode.physicsBody?.mass = 0.3
bookNode.physicsBody?.restitution = 0.0
bookNode.position = position
bookNode.rotation = SCNVector4(0.0, 1.0, 0.0, rotation.converted(to: .radians).value)
return bookNode
}
What properties to I need to set to prevent the books bouncing on top of each other?
ios scenekit
ios scenekit
asked Nov 9 at 10:56
Alex Curran
7,52344153
7,52344153
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
The parameter to control the bouncing is
bookNode.physicsBody?.damping = 0.9.
This may lead to slow motion of books. So a better idea is using contactDelegate to dynamic change the damping after collision.
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
The parameter to control the bouncing is
bookNode.physicsBody?.damping = 0.9.
This may lead to slow motion of books. So a better idea is using contactDelegate to dynamic change the damping after collision.
add a comment |
up vote
0
down vote
The parameter to control the bouncing is
bookNode.physicsBody?.damping = 0.9.
This may lead to slow motion of books. So a better idea is using contactDelegate to dynamic change the damping after collision.
add a comment |
up vote
0
down vote
up vote
0
down vote
The parameter to control the bouncing is
bookNode.physicsBody?.damping = 0.9.
This may lead to slow motion of books. So a better idea is using contactDelegate to dynamic change the damping after collision.
The parameter to control the bouncing is
bookNode.physicsBody?.damping = 0.9.
This may lead to slow motion of books. So a better idea is using contactDelegate to dynamic change the damping after collision.
answered Nov 9 at 15:00
E.Coms
1,3951412
1,3951412
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53224378%2fhow-to-get-scenekit-objects-to-not-bounce-at-all%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown