2012-01-23 28 views
5

Hướng dẫn sau đây giải thích cách thực hiện chia kết cấu cơ bản với bản đồ độ cao.JME3 - Ghép nhiều hơn ba họa tiết

http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_terrain

tôi đã có thể làm theo hướng dẫn này và các bài tập với kết quả xuất sắc. Tuy nhiên, tôi tự hỏi làm thế nào để thêm nhiều hơn ba kết cấu. Tôi thấy trong các tham số vật liệu của tập tin Terrain.j3md chỉ có ba lớp kết cấu: Tex1, Tex2, Tex3 vì vậy tôi không tin rằng bạn có thể làm điều này bằng cách sử dụng Terrain.j3md.

Giả định rằng bạn phải sử dụng TerrainLighting.j3md. Tuy nhiên, điều này có cấu trúc rất khác với các tham số như NormalMap và DiffuseMap và tôi không thể tìm thấy bất kỳ tài liệu/hướng dẫn nào giải thích chính xác chúng là gì.

Trả lời

2

JME3 là thư viện dựa trên OpenGL sử dụng GLSL shaders để hiển thị. Bạn phải viết trình đổ bóng tùy chỉnh của mình hoặc sửa đổi trình đổ bóng tùy chỉnh hiện có để thực hiện hiển thị tùy chỉnh.

Shaders là một chủ đề nâng cao. Bạn có thể tìm thấy phần giới thiệu về shaders trên tài liệu SDK. Nhưng có lẽ bạn muốn đọc toàn bộ bài viết về "Materials, Light, Shadow".

JME3 sử dụng ba tập tin để quản lý chúng:

  • Một tập tin .vert với mã shader GLSL đỉnh
  • Một tập tin .frag với mã shader GLSL đoạn
  • Một tập tin .j3md với định nghĩa chương trình shader

Cả hai trình đổ bóng đỉnh và mảnh chỉ là một đoạn mã sử dụng ngôn ngữ GLSL. Vertex shader được thực hiện một lần cho mỗi đỉnh trong khung nhìn để tính toán tọa độ màn hình. Trình đổ bóng phân đoạn được thực thi một lần cho mỗi pixel trên màn hình để tính toán màu. .j3md tập tin có định nghĩa về các thông số đầu vào (vật liệu), kỹ thuật (shaders), và như vậy.

Số và loại tham số được cố định. Nhưng bạn có thể sửa đổi Terrain.j3m để thêm một tham số kết cấu mới:

Texture2D tex4 

Thêm một tham số đầu vào mới để Terrain.frag:

uniform sampler2D m_Tex4; 

Và thay đổi mã fragment shader để sử dụng tham số kết cấu mới như bạn muốn.

3

Gần đây hơn, một định nghĩa tài liệu mới cho việc chia nhỏ kết cấu đã được phát hành, hỗ trợ tối đa 12 họa tiết, với các họa tiết ánh sáng và họa tiết bổ sung tùy chọn.

Tên của tài liệu là TerrainLighting.j3mdthis là một ví dụ (rất hay) sử dụng nó.

+0

@RichardTingle thx, đã sửa liên kết –

Các vấn đề liên quan