Home Forums GAMES在线课程(现代计算机图形学入门)讨论区 作业3如何换成其他的模型

Tagged: 

Viewing 4 reply threads
  • Author
    Posts
    • #3966 Score: 0
      zsw
      Participant
      -2 pt

      如何换成其它的模型进行渲染。。老是报错
      只用更改
      std::string obj_path = “../models/spot/”;
      bool loadout = Loader.LoadFile(“../models/spot/spot_triangulated_good.obj”);
      auto texture_path = “hmap.jpg”;
      这些地方就行了吧?

    • #3969 Score: 0
      助教
      Keymaster
      14 pts

      理论上是的,如果还有问题可能需要检查下模型本身。

    • #4066 Score: 0
      戴皓天
      Participant
      9 pts

      不知道为什么一换他就报错。。。

      Attachments:
      You must be logged in to view attached files.
      • #4075 Score: 0
        sublimation
        Participant
        3 pts

        这个错误,应该是opencv读取失败的报错,看看路径下是否有图?可以show一下看看是否读取成功。

        • #4095 Score: 0
          cnyyl
          Participant

          main函数里面有两行代码
          auto texture_path = “hmap.jpg”;
          r.set_texture(Texture(obj_path + texture_path));
          把第二行注释一下应该就可以了,换路径它找不到hmap.jpg

    • #4076 Score: 1
      Keneyr
      Participant
      7 pts

      我仅仅改动了文件路径,然后挨个试了个遍。不知道小伙伴们跟我效果一样不:
      bunny只有模型,就normal,然后很小
      crate似乎深度出问题了
      cube两个png,试了其中一个(难道有一个是法线纹理?)
      rock直接段错误

      This post has received 1 vote up.
      Attachments:
      You must be logged in to view attached files.
      • #4112 Score: 0
        sublimation
        Participant
        3 pts

        我这里rock是可以跑的,段错误很可能是数组下标越界之类的。

        • #4419 Score: 0
          Keneyr
          Participant
          7 pts

          你的crate怎么样

          • #4427 Score: 0
            sublimation
            Participant
            3 pts

            crate也是会出现不封闭的样子,和你的图一样,不过纹理是可以贴上的。
            这个感觉像是mesh的问题。

      • #4128 Score: 0
        pi
        Participant

        我的结果也是这样,请问你现在解决了吗

        • #4418 Score: 0
          Keneyr
          Participant
          7 pts

          rock那个,应该是因为摄像机离太近了,导致rock的bounding值超过了700*700的像素,你把bounding的最大值,最小值分别和width/heigt,0进行一下比较,再框定一下。

          或者移动摄像机,离得远一点。

          • #4537 Score: 0
            Superstarimage
            Participant

            rock离摄像机太近了,将eye_pos设置为(0, 0,20)可以避免段错误。

      • #4311 Score: 0
        YileXu
        Participant
        1 pt

        我也

        • #4538 Score: 0
          Superstarimage
          Participant

          由于摄像机朝着-z方向,所以z分量值越大,距离朝向的物体越远,反之越近(前提是没有越过物体)。

      • #4428 Score: 0
        JZZ
        Keymaster
        2 pts

        模型渲染的结果大小和设置的摄像头位置有关,可以修改main()中的变量eye_pos进行设置。
        比如说那可以把eye_pos改成(0,0,1)再渲染一下bunny.obj试试

      • #18627 Score: 0
        HuskyRye
        Participant

        其实你的 cube 是有问题的,因为代码框架的插值没有在 view 空间进行,而是在 projection 空间,所以贴图看起来很扭曲

        正确的做法是对 alpha, beta, gamma 做一个修正,公式详见:
        https://www.cs.ucr.edu/~craigs/courses/2024-winter-cs-130/lectures/perspective-correct-interpolation.pdf

        代码详见:
        https://github.com/HuskyRye/GAMES101/commit/623abc1f5281a9bf822d9baf5ea7ffdeacc8012b

        Attachments:
        You must be logged in to view attached files.
    • #4110 Score: 0
      sublimation
      Participant
      3 pts

      if (argc == 3 && std::string(argv[2]) == “texture”)
      这个里面的texture_path也要改

Viewing 4 reply threads
  • You must be logged in to reply to this topic.