3DCoat ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΈ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½ΡΠΆΠ½Π° ΡΠ΅Π±Π΅. ΠΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
- ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅
- ΠΡΡΠΈΡΠ°Π½ΠΈΠ΅
- ΠΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠΊΡΠΈΠΏΡΠ°ΠΌΠΈ.
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄Π²Π΅ ΡΡΠ΅ΡΡ ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ 3DCoat. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΡΡΠΎΠ±Ρ ΡΡ ΠΌΠΎΠ³ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ.
ΠΠ±ΡΠ°ΡΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½ΡΠΉ ΠΌΠ΅Ρ Ρ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΊΠΎΠΉ. Π§ΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΠΎ, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ Π² ΡΠΊΡΠ»ΡΠΏΡ-ΠΊΠΎΠΌΠ½Π°ΡΠ΅ 3DCoat Π² ΡΠ΅ΠΆΠΈΠΌ, Π³Π΄Π΅ ΠΎΠ½Π° Π²ΠΈΠ΄Π½Π° (ΠΊΠ»Π°Π²ΠΈΡΠ° W
Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Ρ "ΠΡΠΎΡΠΌΠΎΡΡ / ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΠ΅ΡΠΊΡ").
ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ (Add)
void main() {
SculptRoom room;
room.clear().toSurface();
Builder builder;
Mesh a = builder.sphere()
.radius( 70 )
.details( 0.1 )
.build();
Mesh b = builder.sphere()
.radius( 40 )
.position( Vec3( 30, 40, 50 ) )
.details( 0.5 )
.build();
Mesh result = a | b;
room += result;
}
ΠΡΡΠΈΡΠ°Π½ΠΈΠ΅ (Subtract)
void main() {
SculptRoom room;
room.clear().toSurface();
Builder builder;
Mesh a = builder.sphere()
.radius( 70 )
.details( 0.1 )
.build();
Mesh b = builder.sphere()
.radius( 40 )
.position( Vec3( 30, 40, 50 ) )
.details( 0.5 )
.build();
Mesh result = a - b;
room += result;
}
ΠΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ (Intersect)
void main() {
SculptRoom room;
room.clear().toSurface();
Builder builder;
Mesh a = builder.sphere()
.radius( 70 )
.details( 0.1 )
.build();
Mesh b = builder.sphere()
.radius( 40 )
.position( Vec3( 30, 40, 50 ) )
.details( 0.5 )
.build();
Mesh result = a & b;
room += result;
}
ΠΠΌΠ΅ΡΡΠ΅
Π’. ΠΊ. ΡΡ, Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ°, Π·Π°Ρ
ΠΎΡΠ΅ΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΡΠ΅ΠΌ ΠΎΠ΄ΠΈΠ½ΠΎΠΊΠΈΠΉ ΠΌΠ΅Ρ Π½Π° ΡΡΠ΅Π½Π΅, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΠΌ Π²ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π±ΡΠ»Π΅Π²ΡΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π½Π°Π΄ ΠΌΠ΅ΡΠ°ΠΌΠΈ Π²ΡΡΠ΅ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΠΌ **Π²ΡΠ΅** ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π° ΡΡΠ΅Π½Π΅.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π·Π½Π°Π½ΠΈΠ΅ ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
Π² 3DCoat ΠΌΠ΅ΡΠΎΠ΄Π°Ρ
ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
void main() {
SculptRoom room;
room.clear().toSurface();
Builder builder;
Mesh a = builder.sphere()
.radius( 70 )
.details( 0.1 )
.build();
Mesh b = builder.sphere()
.radius( 40 )
.position( Vec3( 30, 40, 50 ) )
.details( 0.5 )
.build();
const Vec3 floorShift( 0, 200, 0 );
Mesh add = a | b;
Vec3 floor = Vec3( 0 );
add.tools().transform().position( floor ).run();
room += add;
Mesh subtract = a - b;
floor += floorShift;
subtract.tools().transform().position( floor ).run();
room += subtract;
Mesh intersect = a & b;
floor += floorShift;
intersect.tools().transform().position( floor ).run();
room += intersect;
}
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Ρ ΡΠ΅Π±Ρ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ "ΠΏΠΈΡΠ°ΠΌΠΈΠ΄ΠΊΠ°" ΠΈΠ· ΡΡΠ΅Ρ... Π’ΠΎΡΠ½Π΅Π΅, ΠΈΠ· ΡΠΎΠ³ΠΎ, ΡΡΠΎ Ρ Π½ΠΈΠΌΠΈ ΡΡΠ°Π»ΠΎ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, Π²ΡΡΠΈΡΠ°Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΊΠΎΠ΄ ΡΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ. Π ΡΠΊΡΠΈΠΏΡΠΈΠ½Π³Π΅ 3DCoat ΠΎΠ½Π° ΡΠΎΠΆΠ΅ Π΅ΡΡΡ.
- Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
- π ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΊΡΠΈΠΏΡ
-
π Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠ΅ΠΉ ΠΈΠ· ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ²
-
π ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠ΅ΠΉ
-
π ΠΡΠ»Π°Π΄ΠΊΠ° ΡΠΊΡΠΈΠΏΡΠΎΠ²