คำถามติดแท็ก water

3
ฉันจะสร้างน้ำ 2D ด้วยคลื่นแบบไดนามิกได้อย่างไร
New Super Mario Brosมีน้ำ 2D ที่ยอดเยี่ยมจริงๆที่ฉันต้องการเรียนรู้วิธีการสร้าง นี่คือวิดีโอที่แสดง ส่วนที่เป็นตัวอย่าง: สิ่งที่กระทบกับน้ำสร้างคลื่น นอกจากนี้ยังมีคลื่น "พื้นหลัง" ที่คงที่ คุณสามารถดูคลื่นคงที่ได้หลังจากวิดีโอ 00:50 เมื่อกล้องไม่เคลื่อนไหว ฉันคิดว่าเอฟเฟกต์สแปลชทำงานเหมือนในส่วนแรกของบทช่วยสอนนี้ อย่างไรก็ตามในNSMBน้ำยังมีคลื่นคงที่บนพื้นผิวและกระเด็นดูแตกต่างกันมาก ข้อแตกต่างอีกอย่างก็คือในบทช่วยสอนถ้าคุณสร้างสแปลชมันจะสร้าง "รู" ที่ลึกลงไปในน้ำที่จุดกำเนิดของสาด ใน super mario bros ใหม่หลุมนี้หายไปหรือเล็กกว่ามาก ฉันหมายถึงสาดที่ผู้เล่นสร้างขึ้นเมื่อกระโดดเข้าและออกจากน้ำ ฉันจะสร้างผิวน้ำที่มีคลื่นคงที่และกระเด็นได้อย่างไร ฉันกำลังเขียนโปรแกรมใน XNA ฉันลองตัวเองแล้ว แต่ฉันไม่สามารถทำให้คลื่นไซน์แบ็คกราวน์ทำงานร่วมกับคลื่นแบบไดนามิกได้ ฉันไม่ได้ถามว่านักพัฒนาของNew Super Mario Brosทำสิ่งนี้ได้อย่างไร - เพียงแค่สนใจที่จะสร้างเอฟเฟกต์แบบใหม่

4
วิธีการทำให้อนุภาค 2D เป็นของเหลว?
สมมติว่าคุณมีวิธีที่ดีในการเคลื่อนย้ายอนุภาค 2 มิติของคุณเพื่อจำลองของเหลว (เช่นน้ำ) มีความคิดเห็นเกี่ยวกับวิธีการแสดงผลหรือไม่ นี้สำหรับเกม 2D ที่มุมมองจากด้านข้างเช่นนี้ น้ำจะถูกบรรจุในกล่องที่สามารถแตกได้เพื่อให้มันตกลงมาและมีปฏิสัมพันธ์กับวัตถุอื่น วิธีที่ง่ายที่สุดที่อยู่ในใจของฉันคือการใช้ภาพขนาดเล็กสำหรับแต่ละอนุภาค ฉันสนใจที่จะได้ยินวิธีเพิ่มน้ำ
45 2d  particles  water 

5
การจำลองความดันในการจำลองแบบของเหลวที่ใช้กริด
ฉันมีระบบน้ำที่ใช้ระบบกริด 2 มิติในเกม XNA ของฉันเรามีวิธีการใช้เซลลูลาร์ออโตมาตาเพื่อจำลองการตกของน้ำและการแพร่กระจาย ตัวอย่างของน้ำที่ไหลลงมาตามทางลาด: แต่ละแผ่นสามารถมีค่าของเหลว 0 ถึง 255 ค่าซึ่งเก็บไว้ในหน่วยไบต์ ฉันไม่ได้ใช้floatsระบบน้ำเก่าที่ฉันเคยทำ แต่มันเพิ่มภาวะแทรกซ้อนและมีผลการทำงานที่ยอดเยี่ยม กระเบื้องน้ำแต่ละอัพเดตตัวเองด้วยชุดของกฎง่ายๆ: หากไทล์ด้านล่างมีช่องว่างให้ย้ายมากที่สุดเท่าที่เป็นไปได้จากไทล์ปัจจุบันไปยังล่างสุด (Flow Down) หากทั้งสองด้านนั้นไม่เหมือนกันและไม่เป็นศูนย์และทั้งสองจะผ่านได้เราจะได้ผลรวมของ 3 แผ่น (ซ้าย + ปัจจุบัน + ขวา) และหารด้วย 3 โดยปล่อยให้ส่วนที่เหลืออยู่บนแผ่นกลาง (ปัจจุบัน) หากกฎข้างต้นให้ผลรวมเป็น 2 เราควรแบ่งไพ่ออกเป็นสองด้าน (1, 0, 1) หากกฎ 2 ให้ 1 เป็นผลรวมให้เลือกด้านที่สุ่มเพื่อไหลเข้า หากกฎ 2 ล้มเหลวเราควรตรวจสอบว่าด้านใดด้านหนึ่งสามารถผ่านได้และอีกด้านหนึ่งไม่ได้ หากเป็นจริงเราจะแบ่งไทล์ปัจจุบันออกเป็นสองส่วนสำหรับ 2 ไทล์ ฉันจะขยายตรรกะนี้เพื่อรวมความกดดันได้อย่างไร แรงดันจะทำให้ของเหลวเพิ่มขึ้นเหนือ "U-Bends" และเติมในช่องอากาศ …
30 xna  c#  physics  grid  water 

3
ทีมป้องกันการเขียนทับทำงานในไฟล์ต้นฉบับได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว มันเป็นไปได้สำหรับฉันที่มีหลายคนที่กำลังทำงานอยู่ในขณะเดียวกันเช่นเอ็นจิ้นเกม สมมติว่านักพัฒนาคนหนึ่งกำลังทำงานAudio.cppและนักพัฒนาที่สองก็กำลังทำงานอยู่Audio.cppสิ่งนี้จัดการโดยทั่วไปในทีมขนาดใหญ่เพื่อต่อสู้กับการเขียนทับได้อย่างไร (ในคำอื่น ๆ ที่จะหยุดสองนักพัฒนาจากการเปิดไฟล์จนกว่านักพัฒนาคนหนึ่งจะเสร็จสิ้น)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

4
วิธีการทำให้เคลื่อนไหว 2d นามธรรมลงบนผิวน้ำ?
ต้องการปรับปรุงโพสต์นี้หรือไม่? ให้คำตอบโดยละเอียดสำหรับคำถามนี้รวมถึงการอ้างอิงและคำอธิบายว่าทำไมคำตอบของคุณถึงถูกต้อง คำตอบที่ไม่มีรายละเอียดเพียงพออาจแก้ไขหรือลบออกได้ ขณะนี้ฉันใช้เกมที่มีมุมมองจากบนลงล่างของมหาสมุทร ฉันใช้สิ่งต่อไปนี้เป็นพื้นผิวที่เป็นนามธรรมเล็กน้อย: พื้นผิวที่แท้จริงมีความโปร่งใสฉันเพิ่มสีเขียวเหมือนเพื่อความชัดเจน ปัญหาที่ฉันมีอยู่ในตอนนี้คือฉันไม่รู้ว่าจะทำให้พื้นผิวนี้เคลื่อนไหวอย่างไรดังนั้นน้ำจึงดูดี ฉันพยายามย้ายพื้นผิวด้วยคลื่นบาป: texture.y += sin(angle). แน่นอนว่าตอนนี้พื้นผิวทั้งหมดกำลังเคลื่อนไหวซึ่งดูไม่สมจริง สิ่งต่อไปที่ฉันพยายามคือเพิ่มเลเยอร์อื่นและใช้เอฟเฟกต์พารัลแลกซ์ ดังนั้นการสะท้อนกลับภายใต้ผิวน้ำก็จะเคลื่อนไหวเช่นกัน แต่ช้ากว่ามาก มันดูดีขึ้นเล็กน้อย แต่ก็ยังไม่ ... ดีพอ ฉันคิดว่าอนิเมชั่นที่ดูดีที่สุดน่าจะเป็นถ้าแต่ละเซลล์จะขยายและหดตัวเช่นเว็บหรือผ้า ลองคิดดูว่าถ้าใครจะดึงจุดยอดหนึ่งของเซลล์เหล่านี้เล็กน้อยและเซลล์เพื่อนบ้านจะขยายตัวและเซลล์ที่ฉันดึงเข้าหา (หรือกดไปที่) จะหดตัว ชนิดของใยสปริง (?) แต่ฉันไม่มีเงื่อนงำวิธีการใช้สิ่งนี้: แบบจำลองคณิตศาสตร์สำหรับเรื่องนี้คืออะไร? บางสิ่งบางอย่างกับสปริงแรงผลัก / ดึงอยู่ที่ไหน และถ้าเป็นเช่นนั้นฉันจะแมปโมเดลนี้กับพื้นผิวที่กำหนดได้อย่างไร รักษาความโค้งทั้งหมดและสิ่งที่ไม่ ... (ฉันยังเปิดรับความคิดที่แตกต่างกัน / คำตอบเกี่ยวกับวิธีการเคลื่อนไหวพื้นผิวที่กำหนดความสมจริงไม่ได้เป็นจุดที่นี่เพียงแค่น้ำดูดีเช่นการเคลื่อนไหว ... ) โซลูชันจาก DMGregory ฉันโพสต์ตัวอย่าง libgdx ในโพสต์นี้: ภาพเคลื่อนไหวน้ำ 2d ขรุขระและไม่ราบรื่น (ดูคำตอบเกี่ยวกับการกรองพื้นผิว)
24 2d  libgdx  animation  water 

1
แสดงผลน้ำมัน / น้ำเสีย?
ตัวช่วยสร้าง shader ใด ๆ ออกไปมีความคิดว่าจะทำเอฟเฟกต์น้ำที่มันหรือมีมลภาวะได้อย่างไรเช่นนี้: ตามหลักการแล้วน้ำจะไม่เป็นน้ำมันอย่างสม่ำเสมอ แต่สามารถสร้างน้ำมันได้จากแหล่งกำเนิดบางแหล่ง (เช่นท่อระบายน้ำเสียจากโรงงานเคมี) จากนั้นกระจายไปทั่วร่างกายน้ำ ความคิดของฉันสำหรับส่วนนี้คือการเก็บ "แผนที่น้ำมัน" เป็นพื้นผิว 2D ที่กำหนดความหนาแน่นของน้ำมันในแต่ละจุดบนผิวน้ำ มันจะกระจายและเคลื่อนที่ตามธรรมชาติด้วย water vel; ocity ณ จุดนั้น (ฉันมีการจำลองอนุภาคคลื่นสำหรับคลื่นแบบไดนามิกและฉันกำลังทำสิ่งที่คล้ายกับโฟมบนผิวน้ำ) อย่างไรก็ตามฉันไม่แน่ใจว่าร่างกายจะถูกต้องอย่างไรเนื่องจากน้ำมันอาจไม่เคลื่อนที่ด้วยความเร็วเท่ากับน้ำ และฉันก็ไม่รู้ว่าจะทำสี trippy เหล่านั้นได้อย่างไร :-) คิด?

4
วิธีการป้องกัน“ การมองเห็นใต้น้ำ” ในเกม
ในหลาย ๆ เกมที่ผู้เล่นสามารถลงไปใต้น้ำได้ดูเหมือนว่าเมื่อคุณดูว่าครึ่งบนของหน้าจออยู่ในอากาศและครึ่งล่างของหน้าจออยู่ในน้ำมันเกือบจะเหมือนไม่มีน้ำและ ผู้เล่นคือ ... บินช้าพร้อมเสียงน้ำ? มีวิธีตรรกะในการแก้ปัญหานี้หรือไม่? อัลกอริทึม? ดูเหมือนจะยังไม่มีวิธีแก้ปัญหาใด ๆ เกิดขึ้นเนื่องจากหลาย ๆ เกมยังมีสิ่งนี้ ฉันไม่ต้องการทำผิดพลาดเหมือนกัน

1
แนวคิดสำหรับการจำลองน้ำแบบ 2D
ฉันกำลังมองหาอินพุตใด ๆ เกี่ยวกับการจำลองน้ำในแบบ 2 มิติเทียบกับอาร์เรย์ที่มีขนาดใหญ่กว่า (เรียกว่า) ถูกบล็อก / ไม่ถูกบล็อก (ดูจากด้านข้าง) ฉันคิดตามแนวคิดต่อไปนี้: Cell Automata ทำแบบจำลอง parralel อย่างหนาแน่นบน CPU ที่ใช้ออโตเซลล์ ด้วยกฎที่ง่ายเหมือน: หากมีเซลล์เปิดอยู่ให้เลื่อนไปด้านล่างสุดไปเลย ตรวจสอบเซลล์ซ้ายและขวาเลือกสุ่มหนึ่งจากสองและย้ายไป ข้อดี ใช้งานง่าย มีความหมาย / เสื่อมในระบบผู้เล่นหลายคน จุดด้อย อาจช้าจริง ๆ ไม่น่าเชื่อ Fluid Dynamics บน GPU ทำการประมาณคร่าวๆของพลศาสตร์ของไหลบน GPU กับพื้นผิวดังนี้: +------+-----+-----+-------+ |R |G |B |A | +------+-----+-----+-------+ |vX |vY |NULL |Density| +------+-----+-----+-------+ ข้อดี …

2
การสร้างเรน 2D (และพลศาสตร์ของไหล)
ฉันกำลังทดลองกับสภาพอากาศในเกมของฉันและฉันก็ประทับใจกับวิธีที่ Starbound จัดการฝน โดยทั่วไปเมื่อฝนตกกระทบพื้นดินมันก็กระจายตัวในแนวนอน (และถูกดูดซับโดยพื้นดิน) หรือก่อให้เกิดกองน้ำ วิดีโอนี้แสดงให้เห็นอย่างชัดเจน: http://imgur.com/gallery/CKCGKbG ฉันรู้วิธีที่จะทำให้ฝนตกและตรวจสอบว่ามันกระทบพื้น แต่นั่นคือสิ่งที่ฉันติด คำถามของฉันคือ: สิ่งนี้สามารถสร้างได้อย่างไร? และรูปแบบหนึ่งของการไหลของน้ำได้อย่างสมบูรณ์แบบโดยไม่ฆ่าประสิทธิภาพได้อย่างไร ขอบคุณล่วงหน้า!

1
วิธีการใช้ ripples ชนิดนี้ด้วยตัวแยกส่วน GLSL?
ดังนั้นฉันจึงได้นำส่วนการสะท้อนกลับมาใช้แล้ว: uniform sampler2D texture; uniform vec2 resolution; uniform vec3 overlayColor; void main() { vec2 uv = gl_FragCoord.xy / resolution.xy; if (uv.y > 0.3)// is air - no reflection or effect { gl_FragColor = texture2D(texture, vec2(uv.x, uv.y)); } else { // Compute the mirror effect. vec4 color = texture2D(texture, vec2(uv.x, 0.6 …

1
ฉันจะสร้างการไหลของน้ำแบบเรียงบนลงล่าง 2 มิติได้อย่างไร?
ฉันกำลังทำงานในเกม 2D ที่เป็นภาพกราฟิกบนพื้นฐานที่ได้รับแรงบันดาลใจจากป้อมปราการ Dwarf ฉันอยู่ในจุดที่ใช้แม่น้ำในโลกของเกมซึ่งครอบคลุมจำนวนแผ่นและฉันได้คำนวณทิศทางการไหลสำหรับแต่ละไทล์ดังที่แสดงด้านล่างโดยเส้นสีแดงในแต่ละไทล์ สำหรับการอ้างอิงถึงสไตล์กราฟิกนี่คือลักษณะของเกมของฉันในขณะนี้: สิ่งที่ฉันต้องการคือเทคนิคบางอย่างในการเคลื่อนไหวของน้ำที่ไหลในแผ่นกระเบื้องของแม่น้ำแต่ละสายเพื่อให้การไหลของมันกลมกลืนไปกับแผ่นกระเบื้องโดยรอบ ตัวอย่างที่ใกล้เคียงที่สุดที่ฉันได้พบกับสิ่งที่ผมอธิบายไว้หลังจากที่http://www.rug.nl/society-business/centre-for-information-technology/research/hpcv/publications/watershader/แต่ฉันไม่ได้ค่อนข้าง เมื่อถึงจุดที่สามารถเข้าใจว่าเกิดอะไรขึ้น ฉันมีความเข้าใจเพียงพอเกี่ยวกับการเขียนโปรแกรม shader ที่จะใช้แสงแบบไดนามิกของตัวเอง แต่ฉันไม่สามารถเข้าใจวิธีการที่นำมาใช้ในบทความที่เชื่อมโยงได้ ใครช่วยอธิบายถึงผลข้างต้นที่เกิดขึ้นหรือแนะนำวิธีการอื่นเพื่อให้ได้ผลลัพธ์ที่ฉันต้องการ ฉันคิดว่าส่วนหนึ่งของวิธีแก้ปัญหาข้างต้นซ้อนทับกระเบื้อง (แม้ว่าฉันไม่แน่ใจว่าจะใช้ชุดค่าผสมใด) และหมุนแผนที่ปกติที่ใช้สำหรับการบิดเบือน (อีกครั้งไม่มีแนวคิดเฉพาะเจาะจง) และในอดีตว่าฉันหายไปเล็กน้อยขอบคุณ ความช่วยเหลือใด ๆ !

2
ฉันจะกำหนดพื้นที่ที่เต็มไปด้วยน้ำได้อย่างไร
ฉันต้องการปรับปรุงเครื่องมือเกมเล็ก ๆ ของฉันด้วยการจำลองน้ำที่ดูดี ในการเริ่มต้นทำงานฉันต้องหาวิธีที่เหมาะสมในการเป็นตัวแทนของน้ำในเกม น่าเสียดายที่ฉันไม่รู้จักตัวแทนที่แตกต่างกันมากดังนั้นฉันจะถามคุณ มีคำถามคล้าย ๆ กันที่ฉันถามเมื่อไม่นานมานี้ แต่เนื่องจากฉันไม่ได้กำหนดปัญหาอย่างชัดเจนคำตอบนั้นถูกต้อง แต่ไม่ใช่สิ่งที่ฉันกำลังมองหา ในบางเกมน้ำจะถูกกำหนดโดยระดับความสูง ตัวอย่างเช่นทุกสิ่งภายใต้ความสูงของศูนย์คือใต้น้ำ ฉันเห็นการเป็นตัวแทนในเกม (ส่วนใหญ่มีอายุมากกว่า) ปัญหาคือฉันต้องการถ้ำในโลกกลางแจ้งที่ไม่ท่วมและระดับน้ำที่แตกต่างกันสำหรับแต่ละทะเลสาบและทะเล อีกอย่างแม่นยำมากขึ้นการเป็นตัวแทนของการเกิดขึ้นของน้ำเป็นอนุภาค หยดน้ำทุกอันจะถูกเก็บไว้เป็นจุดในอวกาศโลก ในการแสดงผลฉันสามารถใช้เทคนิคเช่น metaballs เพื่อให้พวกเขาสร้างตาข่ายเดียว การเป็นตัวแทนนี้จะยอดเยี่ยมสำหรับความสมจริงเนื่องจากฉันสามารถคำนวณพลวัตของพวกเขาได้อย่างง่ายดาย น่าเสียดายที่ไม่มีเครื่องจักรใดสามารถคำนวณมหาสมุทรของสารเมแทบอลได้ในเวลาจริง มีวิธีอื่นที่แสดงถึงน้ำในเครื่องยนต์หรือไม่? ฉันต้องการทะเลสาบที่มีพลวัตดังนั้นการกำหนดพื้นที่น้ำด้วยเรขาคณิตคงไม่มีทางเลือก ตัวอย่างเช่นหากผู้เล่นปรับเปลี่ยนภูมิประเทศเพื่อขยายทะเลสาบน้ำควรเติมเต็มอ่าวนั้นและระดับน้ำโดยรวมของทะเลสาบนั้นควรลดลงเล็กน้อย
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.