Home Forums GAMES在线课程(现代计算机图形学入门)讨论区 作业3 OpenCV 避坑 – texture mapping 运行时

Tagged: 

Viewing 5 reply threads
  • Author
    Posts
    • #10806 Score: 0
      DT
      Participant

      最近接触这门课,做作业三的时候踩了个 OpenCV 的坑(算是?):
      在做 texture_fragment_shader 从 shader_payload 里取 u, v 的时候,在我的环境下会碰到以下问题(见截图):
      问题是只用 u v 的值在执行 Texture.getColor 时会报错(见截图 getColor.png,uv 已限定区间 [0,1]),原因是在 OpenCV 取贴图坐标的函数(_Tp& Mat::at)中有截图 assert.png 中的断言,导致 u 在等于贴图大小时会报错。
      我用的 OpenCV 版本是 4.5.5,在讨论区中并没有找到我碰到的问题的解决方案(没看之前版本的 OpenCV,但看网上别人的实现可以判断他们的环境应该没有这个问题),故在这里记录下,希望能帮到碰到相同问题的同学。若我做的有问题欢迎指正。

      Attachments:
      You must be logged in to view attached files.
    • #10815 Score: 0
      DT
      Participant

      题目不全。。。“… texture mapping 运行时报错”

    • #10844 Score: 0
      DT
      Participant

      3.4.3 也是,但是只是 Debug 这样,Release 自动跳过断言

    • #11034 Score: 0
      happyfire
      Participant
      4 pts

      这地方确实有bug,参考我这个post:
      Reply To: 作业3:小牛正面或背面正对镜头时出现缝隙

    • #12074 Score: 0
      Nachtkerzen
      Participant

      作业三同样遇到了楼主的问题,phong与normal可以正常生成,而texture生成时会出现断言
      ,OpenCV版本是4.6.0。
      想问问楼主最后是怎么解决这个问题的?

    • #12107 Score: 1
      Loong
      Participant
      1 pt

      我改了一下getColor函数:
      if (u <= 0 || u >= 1 || v <= 0 || v >= 1)
      return Eigen::Vector3f(0, 0, 0);

      This post has received 1 vote up.
Viewing 5 reply threads
  • You must be logged in to reply to this topic.