Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 13 kết quả

Đề tài: Load file .png trong DirectX

  1. #1
    Ngày gia nhập
    05 2008
    Bài viết
    15

    Mặc định Load file .png trong DirectX

    em đọc trong MSDN thì hàm D3DXLoadSurfaceFromFile có hỗ trợ định dạng png
    ( hỗ trợ "D3DXIMAGE_FILEFORMAT D3DXIFF_PNG
    Portable Network Graphics (PNG) file format
    Functions that begin with D3DXLoadxxx support all of the formats listed")

    nhưng sao em thử load file ảnh png không được
    load file bitmap thì bình thường
    đã thử đổi định dạng D3DFORMAT của surface , BackBufferFormat của Device theo đủ các kiểu mà vẫn ko được


    huynh nào giúp em với

  2. #2
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Bạn attach của project lên mình xem thử < có khi mình nhờ mấy ông anh giúp giùm chứ mình cũng dốt cái này > hì hì.

  3. #3
    Ngày gia nhập
    05 2008
    Bài viết
    15

    =_=
    em tưởng cái này đâu cần code ?
    cái d3dpp là device
    Code:
    d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;
    còn cái surface
    Code:
    CreateOffscreenPlainSurface(640,480,
    D3DFMT_X8R8G8B8,
    D3DPOOL_DEFAULT,
    &surface,
    NULL);
    khi load ảnh
    Code:
    D3DXLoadSurfaceFromFile( surface,
    NULL,
    NULL,
    “test.bmp”,
    NULL,
    D3DX_DEFAULT,
    0,
    NULL );
    đấy là mã khi em load ảnh bmp , load bình thường ko bị sao cả

    còn khi load ảnh test.png (ảnh này em lưu bằng photoshop nên ko thể nhầm được) , thì ko được =_= , đã thử đổi D3DFMT_X8R8G8B8 thành các định dạng khác cũng ko xong
    :((

  4. #4
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Tớ nói rồi, không phải tớ giúp cậu " vì tớ ko đủ khả năng ".

    Nên định đưa cho ông anh sửa giúp cậu

  5. #5
    Ngày gia nhập
    05 2008
    Bài viết
    15

    đây ạ
    vì em viết project đơn giản để thử load file png nên cả project chỉ có đúng file main.cpp này
    Code:
    http://www.box.net/shared/8gdz3d4eug
    (cài lại win , giờ đang down lại Visual 2005 )

    file test.png thì em save bằng photoshop và để ở cùng thư mục nên chắc ko sai do file được ( load file test.bmp bình thường mà )

  6. #6
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Mặc định Load file .png trong DirectX

    Uhm, mình đã sửa lại giúp bạn, mình thử load file png thì thấy ok ngay.

    Mình attach lên đây file mình test, cũng như 2 file ảnh để test.

    P/S Lần sau khi bạn send source, mình mong bạn send chính xác, để mình, hoặc người khác khi test sẽ không mệt mỏi chỉnh sửa lại từng phần 1, đôi lúc cứ tưởng bạn đang đánh đố mình vậy, dù mình đã nói là nhờ người khác sửa.

    Vì anh mình bận, nên mình test thấy ok thì đưa cho bạn ngay, có thể có chỗ nào đó nó không đúng với yêu cầu của bạn, bạn có thể send lại, nhưng nhớ đính kèm file png, bạn load không đúng, để mình có thể kiếm tra lỗi chính xác hơn.

    Chúc bạn thành công.
    Attached Files Attached Files

  7. #7
    Ngày gia nhập
    05 2008
    Bài viết
    15

    không phải là em có ý gì đâu
    tại máy em vừa bị hư ổ cứng , format lại toàn bộ nên em mất hết dữ liệu rồi
    file cpp em đưa thực ra là em nhớ lại và viết trên nodepad
    hôm qua down visual 2005 được 81% thì cúp điện
    :(
    giờ em cũng chưa down xong
    nhưng anh thử được rồi thì chắc là được rồi
    ( mà chẳng hiểu tại sao ngày trước lại load file bmp được nhỉ ?
    em từng bị một lần lưu file test.png mà sửa thành test.bmp nên em đã kiểm tra file kĩ lắm
    =_=

    nhân đây cho em hỏi luôn
    trong nhiều game ấy , VD lúc thắng , thì sẽ làm mờ hình ảnh của game rồi vẽ điểm và thông báo thắng lên ( vẫn nhìn được khung hình game mờ đằng sau dù ko chạy nữa )
    làm sao để có thể làm mờ hình ảnh đó đi vậy ? chẳng lẽ vẽ một tấm ảnh png dạng gương màu tối lên ?

  8. #8
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    uhm cái này thì mình cũng không rõ T_T để mình hỏi các pro xem sao.

    Nếu trong window bạn có thể sử dụng thuộc tính attribute để làm mờ cửa sổ, C# thì có opacity còn dx thì hãy đợi đấy

    Tạm thời bạn có thể làm mờ cả cửa sổ chứa game luôn rồi sao đó tớ reply sao

  9. #9
    Ngày gia nhập
    09 2008
    Nơi ở
    Kĩ viện
    Bài viết
    169

    Bạn phải biết về shader, nói chung cái này cũng khá là cao cấp, mình chỉ có thể nói ngắn gọn mờ đó trong ngành gọi là blur, nó cùng với bloom là hai hiệu ứng hay được sử dụng nhất trong các game next-gen hiện nay. Nếu bạn dùng Ogre, thì quá đơn giản , Ogre đã có những đoạn shader viết sẵn rất ngon cho mấy vấn đề này. Còn nếu không?, thì ..chịu khó học tiếp đi vậy.

    À hình như mờ của bạn không phải blur, bạn coi kĩ lại xem có đúng người ta làm mờ đi không? hay là làm màn hình nó xám xịt lại???. Nhưng dù sao thì vẫn cần tới shader để can thiệp vào quá trình render mới mong có mấy cái hiệu ứng đấy T.T

    Edit:
    Nếu trong window bạn có thể sử dụng thuộc tính attribute để làm mờ cửa sổ, C# thì có opacity còn dx thì hãy đợi đấy
    Dùng pixel shader(cả vertex shader nữa nếu cần) để đạo từng điểm ảnh một trước khi render là xong ấy mà. Đại khái nó là một đoạn mã, với đầu vào là một pixel và đầu ra ..cũng là một pixel . Mỗi lần render tới giai đoạn xử lý pixel thì nó call đoạn mã đấy n lần(n là số điểm ảnh), cuối cùng nó lấy kết quả là cái đầu ra đấy rồi đập ra màn hình. Vì cái này phải xử lý tuần tự từng pixel một và được thực hiện trên GPU(not CPU) nên yêu cầu graphic card phải khá ngon mới xài được T.T, máy tớ không có pixel shader toàn phải chơi giả lập chậm như rùa nó bò ToT.

    Tạm thời bạn có thể làm mờ cả cửa sổ chứa game luôn rồi sao đó tớ reply sao
    Ộ!, thế nhìn thấy cả desktop à???. Hay lại chơi như ông nào đấy lồng hai cái form lên nhau =)).

    P/S: Mờ với trong suốt là khác nhau đấy hai ông ạ.
    Đã được chỉnh sửa lần cuối bởi NamVoDang : 12-12-2008 lúc 07:48 PM.
    Phá toái hư không - Bạch nhật thăng thiên.

  10. #10
    Ngày gia nhập
    05 2008
    Bài viết
    15

    Trích dẫn Nguyên bản được gửi bởi NamVoDang Xem bài viết
    À hình như mờ của bạn không phải blur, bạn coi kĩ lại xem có đúng người ta làm mờ đi không? hay là làm màn hình nó xám xịt lại???

    P/S: Mờ với trong suốt là khác nhau đấy hai ông ạ.

    vâng em nhầm , cái em hỏi ở trên là người ta làm màn hình xám đi
    nhưng tại vẫn nhìn thấy phông cảnh của game đằng sau nên em mới nghĩ là mờ
    mà hiệu ứng blur em tưởng là làm nhòe

    thực ra là game nì em làm bài tập lớn LTHDT và đã nộp rồi , vội quá nên em cắt hết các hiệu ứng đi (phải dùng ảnh bmp vừa nặng vừa xấu nữa )
    giờ rảnh nên muốn tìm hiểu kĩ lại thôi

    nếu đã vậy thì em hỏi luôn
    1/ làm màn hình xám xịt đi
    2/ làm hình ảnh bị nhòe như khi chuyển động nhanh hay lúc trời mua , nhìn qua kính
    3/ khi thoát game , ko cắt cái bụp mà làm toàn bộ game trong suốt dần dần rồi mới mất hẳn (trong suốt cho tới khi nhìn thấy desktop luôn ý )

    nếu được thì các huynh giảng giải chi tiết
    không thì chỉ cần bảo em cần phải ngâm cứu kĩ những phần nào , chỗ nào cũng được rùi
    em cảm ơn rất rất nhìu

Các đề tài tương tự

  1. Trả lời: 4
    Bài viết cuối: 04-09-2013, 06:39 AM
  2. cách nào lấy resource file .x(DirectX )
    Gửi bởi trangkhuyetqd trong diễn đàn Thắc mắc chung
    Trả lời: 0
    Bài viết cuối: 26-09-2011, 11:46 PM
  3. Load 1 file anh khac bitmap bang directx
    Gửi bởi TuanAnh207 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 20-03-2009, 08:22 PM
  4. Load ảnh trong DirectX không được !
    Gửi bởi reddy trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 14-11-2008, 04:30 PM
  5. Xin hướng dẫn cách load hình trong VS C++ sử dụng DirectX
    Gửi bởi mysuncl trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 09-03-2008, 01:16 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn