; ; ------------------------------------------------------------ ; ; PureBasic - SetMeshMaterial ; ; (c) Fantaisie Software ; ; ------------------------------------------------------------ ; IncludeFile #PB_Compiler_Home + "examples/3d/Screen3DRequester.pb" If InitEngine3D() Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Textures", #PB_3DArchive_FileSystem) InitSprite() InitKeyboard() InitMouse() If Screen3DRequester() MaterialFilteringMode(#PB_Default, #PB_Material_Anisotropic, 8) ; Материал CreateMaterial(0, LoadTexture(0, "ValetCoeur.jpg")) SetMaterialColor(0, #PB_Material_SelfIlluminationColor, RGB(255, 255, 255)) CreateMaterial(1, LoadTexture(1, "DosCarte.png")) ; Создать сетку вручную ; Определить все вершины и их атрибуты CreateMesh(0) ; Ректо (Recto) MeshVertexPosition(-0.5,0,-0.5) MeshVertexTextureCoordinate(0,0) MeshVertexPosition(0.5,0,-0.5) MeshVertexTextureCoordinate(0,1) MeshVertexPosition(0.5,0,0.5) MeshVertexTextureCoordinate(1,1) MeshVertexPosition(-0.5,0,0.5) MeshVertexTextureCoordinate(1,0) ; Определить все грани на основе индекса вершины MeshFace(2,1,0) MeshFace(0,3,2) ; Версо (Verso) AddSubMesh() MeshVertexPosition(-0.5,0,-0.5) MeshVertexTextureCoordinate(0,0) MeshVertexPosition(0.5,0,-0.5) MeshVertexTextureCoordinate(0,1) MeshVertexPosition(0.5,0,0.5) MeshVertexTextureCoordinate(1,1) MeshVertexPosition(-0.5,0,0.5) MeshVertexTextureCoordinate(1,0) MeshFace(0,1,2) MeshFace(2,3,0) FinishMesh(#True) NormalizeMesh(0) UpdateMeshBoundingBox(0) SetMeshMaterial(0, MaterialID(0), 0) SetMeshMaterial(0, MaterialID(1), 1) ; - Сущность CreateEntity(0, MeshID(0), #PB_Material_None) ScaleEntity(0, 300, 1, 200) ; - Камера CreateCamera(0, 0, 0, 100, 100) MoveCamera(0, 0, 0, 500, #PB_Absolute) CameraBackColor(0, RGB(80, 20, 20)) Repeat Screen3DEvents() ExamineMouse() ExamineKeyboard() RotateEntity(0, 1.1, 0.3, 1.0, #PB_Relative) RenderWorld() FlipBuffers() Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1 EndIf Else MessageRequester("Ошибка", "3D Движок не может быть инициализирован", 0) EndIf End