Nhân đây bạn Mạnh cho mình hỏi việc thường xuyên phải re-render khoảng 20k -> 40k objects có nặng nề ko?
viết 17:15 ngày 01/10/2018
Tùy theo độ chi tiết của object đó nhé bạn, thường tính theo số lượng triangles (tris) thay vì objects. Một object sẽ có một số lượng tris nhất định.
Thường thì bạn tính theo vùng nhìn thôi. Tức 20k - 40k objects đó là toàn bộ nhưng phải có thuật toán cắt bỏ bớt, chỉ render những vùng người ta nhìn thấy trong số object đó.
Mình chủ yếu là các lines 2D. Vùng nhìn tối đa của mình lên tới 40k objects, 1 bước pan chuột có thể thay đổi tới hơn 10k. Việc này quả là nightmare với java
viết 17:25 ngày 01/10/2018
Vậy thì có thể bạn làm sai cách rồi. Bạn có thể chuyển sang OpenGL java hoặc thư viện nào đó để sử dụng GPU và vẽ 2D như game.
Framework JavaFx có prism, nó wrap OpenGL. Việc chết tiệt là bất cứ modify nào tới scene graph nodes thì phải dùng main thread (việc tính toán có thể dùng background threads). Dù có tính nhanh cỡ nào thì khi thay đổi 10k objects thì mình cũng bị nghẽn main thread và block mọi tương tác khác với user khi thao tác nhanh.
Mình xem bản vẽ trên cái Iphone nó vừa render vừa tương tác gesture vô tư được. Giống như nó dùng được multi-thread trong tương tác GUI.
Phương án chia nhỏ quá trình present objects, hủy ngang nếu có tương tác mới từ user có thường đượng dùng ko bạn? Mình ko có kn nên cũng ko biết các real developer làm ntn.
Mình cũng định dứt áo tìm tình mới mấy lần nhưng Java cũng có những lợi thế phù hợp và hấp dẫn quá.
Lý do mình bập JavaFx là khi lướt qua nhìn thấy những thứ này: Table, listview, treeview, databinding, events - listeners, database, forms, concurrency, scene graph dễ dàng. Đều là những miếng mình cần và cảm thấy ngon ăn. Lúc đầu bập vào cũng lo lo tốc độ và thế là đến giờ hóc thật.
C++ thì cái nào sẽ cho mình những lợi thế tương đương trên bạn? Mình cũng đang định tìm đường thoát xác dần dần ở C++.
Cảm ơn bạn. Mình làm ứng dụng nhưng bị bí ở tốc độ UI.
Xin lỗi bạn vì off-topics tí nha. Mình vẫn khao khát tốc độ của ứng dụng C++ mà chưa quyết định đc.
Có vẻ topic hơi phức tạp so với các bạn diễn đàn nên không thấy ý kiến gì
for fun: ngày xưa khi chưa biết gì về lập trình, mình thường nghĩ lập trình game kiểu như lắp ráp module và vẽ hoạt xong ngồi ráp lại, lập kịch bản hành động xong ngồi test lại; kiểu đơn giản như ĐANG GIỠN
Những thứ này bạn có thể dựa hết vào Qt nhé.
Tuy nhiên do là C++ nên move từ java sang có lẽ sẽ hơi sock về coding style và số dòng code của Qt khi ra app.
viết 17:27 ngày 01/10/2018
for fun: ngày xưa khi chưa biết gì về lập trình, mình thường nghĩ lập trình game kiểu như lắp ráp module và vẽ hoạt xong ngồi ráp lại, lập kịch bản hành động xong ngồi test lại; kiểu đơn giản như ĐANG GIỠN
Đơn giản là có thật bạn ạ, phải dùng lập trình để biến làm game trở thành đơn giản.
Các bạn có thể trao đổi ở đây hoặc qua facebook post: https://www.facebook.com/ntmanh.net/posts/374149566395074
Có vẻ topic hơi phức tạp so với các bạn diễn đàn nên không thấy ý kiến gì chắc sắp tới bỏ forum tìm chỗ khác quá.
người tiên phong bao giờ cũng vất vả hơn bạn ơi, bạn cứ làm đi, nếu nó thực sự hay ho thì sẽ thu hút được nhiều người. Chúc bạn thành công
Taken from my personal facebook, want to share with you
Bạn có thể đi sâu về chủ đề mesh format này được ko? Ứng dụng của nó ntn khi làm đồ họa?
Theo mình bạn tập trung quất vào 1 chủ đề nào đó thật sâu, dàn nhiều ae nuốt ko hết. Trong game mình nghĩ là đồ họa.
Có thể mình sẽ livestream quá trình viết tính năng mới.
Và làm những video ngắn để phân tích những kỹ thuật lập trình áp dụng vào game engine.
Nhân đây bạn Mạnh cho mình hỏi việc thường xuyên phải re-render khoảng 20k -> 40k objects có nặng nề ko?
Tùy theo độ chi tiết của object đó nhé bạn, thường tính theo số lượng triangles (tris) thay vì objects. Một object sẽ có một số lượng tris nhất định.
Thường thì bạn tính theo vùng nhìn thôi. Tức 20k - 40k objects đó là toàn bộ nhưng phải có thuật toán cắt bỏ bớt, chỉ render những vùng người ta nhìn thấy trong số object đó.
Mình chủ yếu là các lines 2D. Vùng nhìn tối đa của mình lên tới 40k objects, 1 bước pan chuột có thể thay đổi tới hơn 10k. Việc này quả là nightmare với java
Vậy thì có thể bạn làm sai cách rồi. Bạn có thể chuyển sang OpenGL java hoặc thư viện nào đó để sử dụng GPU và vẽ 2D như game.
Framework JavaFx có prism, nó wrap OpenGL. Việc chết tiệt là bất cứ modify nào tới scene graph nodes thì phải dùng main thread (việc tính toán có thể dùng background threads). Dù có tính nhanh cỡ nào thì khi thay đổi 10k objects thì mình cũng bị nghẽn main thread và block mọi tương tác khác với user khi thao tác nhanh.
Mình xem bản vẽ trên cái Iphone nó vừa render vừa tương tác gesture vô tư được. Giống như nó dùng được multi-thread trong tương tác GUI.
Phương án chia nhỏ quá trình present objects, hủy ngang nếu có tương tác mới từ user có thường đượng dùng ko bạn? Mình ko có kn nên cũng ko biết các real developer làm ntn.
bỏ Java sang code C++ chứ còn gì nữa
Bạn đang làm ứng dụng hay game vậy? Game thì đừng dùng JavaFX, thử cái https://www.lwjgl.org/ đi
Hi Manh.
Làm thế nào để tham ra cùng mọi ngừowi ?
Mình cũng định dứt áo tìm tình mới mấy lần nhưng Java cũng có những lợi thế phù hợp và hấp dẫn quá.
Lý do mình bập JavaFx là khi lướt qua nhìn thấy những thứ này: Table, listview, treeview, databinding, events - listeners, database, forms, concurrency, scene graph dễ dàng. Đều là những miếng mình cần và cảm thấy ngon ăn. Lúc đầu bập vào cũng lo lo tốc độ và thế là đến giờ hóc thật.
C++ thì cái nào sẽ cho mình những lợi thế tương đương trên bạn? Mình cũng đang định tìm đường thoát xác dần dần ở C++.
Cảm ơn bạn. Mình làm ứng dụng nhưng bị bí ở tốc độ UI.
Xin lỗi bạn vì off-topics tí nha. Mình vẫn khao khát tốc độ của ứng dụng C++ mà chưa quyết định đc.
Hi Code Đơ.
Bạn có thể tìm hiểu về JNI nó cho phép bạn gọi các api viết bằng C/C++ trọng java.
for fun: ngày xưa khi chưa biết gì về lập trình, mình thường nghĩ lập trình game kiểu như lắp ráp module và vẽ hoạt xong ngồi ráp lại, lập kịch bản hành động xong ngồi test lại; kiểu đơn giản như ĐANG GIỠN
OFF-TOPIC
Những thứ này bạn có thể dựa hết vào Qt nhé.
Tuy nhiên do là C++ nên move từ java sang có lẽ sẽ hơi sock về coding style và số dòng code của Qt khi ra app.
Đơn giản là có thật bạn ạ, phải dùng lập trình để biến làm game trở thành đơn giản.